2014-04-18 39 views
0

我想要在文本文檔中獲取一個時間,使其成爲Flash CS6 AS3項目中的一個變量。我似乎無法找到問題出在哪裏,錯誤信息也沒有幫助。突出顯示的部分是已更改的行。如何在Flash CS6中獲取一個變量的時間

這裏是最新的代碼:

this.onEnterFrame = function()

{

var StartTime:URLLoader = new URLLoader();

StartTime.dataFormat=URLLoaderDataFormat.VARIABLES;

StartTime.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(e:Event):void {

}

StartTime.load(new URLRequest("ResponseTime.txt"));

var today:Date = new Date();

var currentTime = today.getTime();

var targetDate:Date = new Date();

var timeLeft = e.data - currentTime;

var sec = Math.floor(timeLeft/1000);

var min = Math.floor(sec/60);

sec = String(sec % 60);

if(sec.length < 2){

sec = "0" + sec;

}

min = String(min % 60);

if(min.length < 2){

min = "0" + min;

}

if(timeLeft > 0){

var counter:String = min + ":" + sec;

time_txt.text = counter;

}else{

var newTime:String = "00:00"; 

    time_txt.text = newTime; 

    delete (this.onEnterFrame); 

}

}

最新的錯誤:

所有的

1120: Access of undefined property e. (Line 17).

+0

我不認爲this.onEnterFrame在AS3中起作用,之後您嘗試使用URLLoader作爲數字...您會說錯誤是什麼錯誤? –

+0

錯誤是: 1067:將類型爲String的值隱式強制轉換爲不相關的類型flash.net:URLRequest。 (第13行) 1067:將類型爲flash.net:URLLoader的值的隱式強制轉換爲不相關的類型flash.net:URLRequest。 (第13行) 1067:將flash.net:URLLoader類型的值的隱式強制轉換爲不相關的類型Number。 (行19) – user3506608

回答

0

首先,這無助:

var StartTime(); 

這不是正確的AS3代碼。

然後,AS3加載程序是異步的,您必須讓加載程序完成加載,以便獲取變量。我的意思是,StartTime.load(...)之後的所有代碼必須位於function onLoaded之內。

這樣,當加載器加載完成時,你會有變量。

也就是說,URLVariable is NOT a loader。這是一個可以用來放置變量的對象,並將它們提供給加載器。

如果要下載某個文件,請使用URLLoader(使用URLRequest)。 On this page,有一個很好的例子,你如何做到這一點(跳過關於dataFormat的部分,雖然)。您所要求的日期將在事件的data屬性,如:

var timeLeft = e.data - currentTime; 

我不是問在哪裏currentTime是,因爲它指出的問題的範圍。

祝你好運。

+0

謝謝, 我改變了你說的,我現在正在得到一個新的錯誤消息:1119:通過引用與靜態類型flash.event:事件訪問可能未定義的屬性數據。 (第16行)。 我會將新代碼放在舊的代碼下面。 – user3506608

相關問題