我正在AS3,適用於iOS SDK的Flash AIR 3.2中工作。我試圖在myLoader
完成加載圖像後才運行部分程序。我有一個myTimer.start();
它運行在myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
內。TimerEvent函數忽略計時器延遲
目前看來什麼問題是程序忽略了1000ms。該程序是在myLoader
目前完成後運行,但它似乎在延遲方面做了自己的事情。
編輯:在這裏更精確...該計劃似乎忽略了計時器延遲。即使Timer設置爲100000ms。圖像加載後,它似乎正在運行程序的其餘部分。
編輯:我仍然有我的方法運行在我的主要()以及代碼中的timerListener()。以爲我評論他們。哎呦!
var myTimer:Timer = new Timer(1000);
public function Main()
{
init();
displayImage();
myTimer.addEventListener(TimerEvent.TIMER, timerListener);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerDone);
}
public function displayImage():void {
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
myLoader.load(fileRequest);
}
public function onLoaderComplete(e:Event) {
//start Timer event here
myTimer.start();
}
public function timerListener (e:TimerEvent):void{
trace("Timer is Triggered");
myTimer.stop();
aMethod();
anotherMethod();
moreMethods();
}
由於您在TIMER事件處理程序中停止計時器,因此除了可能不需要TIMER_COMPLETE事件處理程序外,沒有任何內容會跳出來作爲錯誤。要驗證它是否真的在等待1秒,請嘗試使用[getTimer()](http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getTimer() )方法 - trace()getTimer()在onLoaderComplete()和timerListener()方法中返回的值。 –
是的,TIMER_COMPLETE實際上並沒有運行。我忘了刪除它。我已經在onLoaderComplete()和timerListener()中追蹤了它。該計時器似乎在正確的延遲間隔運行,但我在我的文章中描述的問題仍然存在。 – ArrayOutOfBounds