1

CAATを使用すると、イベントをバインドして、アクターに動作を追加できます。ただし、結果として発生するイベントトリガーで動作の影響を繰り返す方法がわかりません。コードは次のとおりです。

circle.mouseDown = function(e){
    circle.emptyBehaviorList();
    circle.addBehavior(circle_jump);
}

http://jsfiddle.net/S4frL/1/

円をクリックすると1回ジャンプし、もう一度クリックしても何も起こりませんが、同じ動作を再度追加する前にBehaviorListを空にする必要があります。

私は何かが足りないのですか?

前もって感謝します!

4

1 に答える 1

1

これは、動作を一度宣言/適用する必要があるためです。その後、アクター(ボール)を動かす必要がある場合は、「いつ」と言うだけです。基本的に、コードを次のように変更する必要があります。

circle.addBehavior(circle_jump);
scene.addChild(circle);

circle.mouseDown = function(e){
    circle_jump.setFrameTime(scene.time,2000);
}

setFrameTime()は、[scene.time-> now]のタイミングと、アクターが自分の行動に従わなければならない時間[2000ms]をアクターに通知します。私は十分に明確になっていると思います。

ps。これで、ページの読み込み時にボールがジャンプします。これは、次の行にコメントする必要があるためです。

    var circle_jump = new CAAT.PathBehavior().
                setPath(path_jump).
    /* THIS ONE setFrameTime(0,2000). */
                setCycle(false).
                setAutoRotate(false);
于 2013-04-14T20:59:01.737 に答える