質問: createjs.tween.get(box[i], {loop:false}); tween[i].to(移動処理); } (一部省略) jqueryではqueueで行なっていたのですが、動作が完了するまで次の動作を行わない場合、 tweenjsではどのようにすればよいのでしょうか?
回答: a no1です。 >ループを使う関係上ちょっと都合がわるいので~~ callbackで行なうのが一番簡単だと思いますが、どうしてもループで処理したいのなら... アニメーションに要する時間があらかじめわかっているのなら、 その時間経過後に次のアニメーションを行なうように、ループの中でsettimeout等で処理を設定するといった方法があり得ます。 ただし、この方法だとアニメーションの時間が正確かどうかなどによって、動作にラップやギャップが生じてしまう可能性があり、怪しさがあります。 (私はtweenjsの内容を存じませんので、判断できませんが...) もっとまともな方法を考えるなら、 >jqueryではqueueで行なっていたのですが~~ queueと同じような関数を作っておいて、ループ内からはそちらを呼び出すようにすれば良いのではないでしょうか? (一般化して作成するのは面倒でも、限定した関数なら比較的簡単にできると思います) tweenjsを知らないので、かなり適当ですが... var myqueue = function(element, property, func){ ~~ } みたいにしておいて、ループ内からは myqueue(box[i], {loop:false}, function(){tween[i].to(移動処理);} ); のような呼び出し方をするといったもので良いのでは? 結局はcallbackを利用していますが、myqueueの処理内容は以下のような感じ。 対象要素ごとにスタックを作成しfuncをスタックしておいて、既存のスタックがなければ、callbackでスタックの次の内容を実行するようにセットして最初のアニメーションを実行する。 といったものでもいけると思います。 (↑に書いたままだと、作り方によっては、tween[i]の「i」の値が保存されない可能性がありますが... )