ループで繰り返し動かしているものに別の動きを加えると、その加えた動きが新たにループに組み込まれてしまう。そこで一旦ループをキャンセルする。
特に、ループして動いているものに新たに別のループの動きを加えたい場合は、先のループをキャンセルしないと、二重でループがはたらき続けることになり、奇怪な動きになってしまうので注意。
例:左右に動いているたぬき。画面をタッチすると、近づいて、また左右に動く。
// 狸を表示 var tanuki = new ExSprite(32, 32); tanuki.image = core.assets["images/e_tanuki.png"]; tanuki.x = 160 - 16; tanuki.y = 0; scene.addChild(tanuki); // 最初のループの動き tanuki.tl.moveBy(100, 0, 16); tanuki.tl.moveTo(160 - 16, 0, 16); tanuki.tl.moveBy(-100, 0, 16); tanuki.tl.moveTo(160 - 16, 0, 16); tanuki.tl.loop(); console.log("1個目のループ"); // タッチすると scene.addEventListener(Event.TOUCH_START, function(){ // 近づく tanuki.tl.unloop();// 先にはたらいていた1個目のループをキャンセル tanuki.tl.clear(); //これを入れないと、途中で割り込めない tanuki.tl.moveTo(160 - 16, 240 - 16, 16); tanuki.tl.moveTo(160 - 16, 100, 16); // その後また左右にループする動き tanuki.tl.then(function(){ tanuki.tl.moveBy(100, 0, 16); tanuki.tl.moveTo(160 - 16, 100, 16); tanuki.tl.moveBy(-100, 0, 16); tanuki.tl.moveTo(160 - 16, 100, 16); tanuki.tl.loop(); console.log("2個目のループ"); }); });
サンプル 画面タッチでたぬきが移動して別のループに切り替わる