簡體   English   中英

延遲CreateJS動畫時間軸

[英]Delaying CreateJS Animation Timeline

我一直在使用Swiffy來輕松輸出.fla文件,但后來我被告知,如果在iPad上以橫向模式查看,顯示屏會在項目的一半上交替“閃爍”白色。 非常奇怪的行為,我無法在任何其他設備上復制。

所以,我已經開始嘗試使用CreateJS來解決這個問題。 我此時只知道足夠的JS來編輯其他人開發的代碼,所以到目前為止我的效率都很低。

我到目前為止:

/* js
this.stop();
var t=setTimeout(function(){(this.play())}, 1000);
*/

or

/* js
this.stop();
setTimeout(this.play(), 1000);
*/

我無法讓動畫想到超時,我已經嘗試了許多不同的變體來試圖讓一些魔法發生。 它只是立即加載下一幀,它根本不會停頓。 我在哪里錯了?

這是原始的Actionscript:

stop();

var shortTimer:Timer=new Timer(1000); 
shortTimer.addEventListener(TimerEvent.TIMER, timerN1); 
shortTimer.start(); 


function timerN1(e:TimerEvent):void{ 
    play(); 
    shortTimer.reset(); 
}

任何幫助都將非常感激,因為我自己沒有嘗試解決這個問題,這是我幾個星期的休息時間,我的客戶變得越來越生氣。 更多的設計師,就編程而言仍然沒有受過教育。 同樣,即使是一個建議在這一點上也會非常有用。 似乎無法破解它。

這種語法更正確:


/* js
this.stop();
var t=setTimeout(function(){(this.play())}, 1000);
*/

但是,您可能會發現“this”是Window,而不是調用它的MovieClip。 你可以通過使用本地引用(在這種情況下,它的“_this”)解決這個問題。


/* js
this.stop();
var _this = this;
var t=setTimeout(function(){
    console.log(this, _this);
    _this.play();
}, 1000);
*/

您可以通過查看控制台來測試這一點,並查看“this”和“_this”之間的區別。

干杯。

您可以發布更多與您合作的代碼嗎? 您是否嘗試過使用onAnimationEnd函數:

var _this = this;

_this.onAnimationEnd = function() {
    _this.stop();
    setTimeout(function(){
       _this.play();
    }, 1000)
}

嘗試此操作以使您的范圍在setTimeout函數中保持活動狀態:

sprite.on('animationend', function(event) {
    event.target.stop();
    setTimeout(animationend.bind(event.target), 1000);
});

function animationend() {
    this.gotoAndPlay('run');
}

通過使用.bind()您可以將對象作為調用函數中的作用域傳遞。 更多信息在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM