[英]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.