1

私は 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(); 
}

これを自分で修正しようとしている場所が数週間のオフタイムであり、クライアントがますます怒っているため、どんな助けも非常に高く評価されます. プログラミングに関する限り、まだ非常に教育を受けていないデザイナーです。繰り返しますが、この時点では提案でさえ非常に役立ちます. それをクラックすることはできません。

4

3 に答える 3

3

この構文はより正確です:


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

ただし、「これ」は Window であり、それを呼び出す MovieClip ではありません。これは、ローカル参照 (この場合は "_this") を使用することで回避できます。


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

コンソールを見て、「this」と「_this」の違いを確認することで、これをテストできます。

乾杯。

于 2013-03-07T00:39:30.107 に答える
0

作業中のコードをもっと投稿していただけませんか? onAnimationEnd 関数を使用してみましたか:

var _this = this;

_this.onAnimationEnd = function() {
    _this.stop();
    setTimeout(function(){
       _this.play();
    }, 1000)
}
于 2013-03-07T00:11:04.310 に答える