1

トゥイーンを終了した後、変数を変更したいのですが、マウスの動きだけでいくつかの関数が実行され始めますが、onComplete関数がすぐに起動してすべてのものが台無しになっているようです。そのonComplete関数は、アクションが実行された後にのみ実行されませんか?Tween.to行のコードを実行した後に好きな他の方法は、変数を変更して2行目を実行するだけですか?

 stage.addEventListener(MouseEvent.MOUSE_MOVE, movevC);

public static function showSection(obj:DisplayObject):void {;
            var sect2X=((obj.stage.stageWidth/2)+(obj.stage.stageWidth/4))+lg.width;
            var sect2Y=((obj.stage.stageHeight/2)-(obj.stage.stageHeight/4))+lg.height;

            switch (obj.name) {


                case "section2" :
//onComplete run instantly??
                    TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete:currentPage=2});
                    /*if ((vC.x=sect2X)&&(vC.y=sect2Y)) {
                        currentPage=2;
                    }*/
                    break;
            }
        }
private function movevC(event:MouseEvent):void {
if (currentPage==2) {
                TweenLite.to(vC, 2, {x:mouseX, y:mouseY});
            }
}
4

3 に答える 3

5

onCompleteは関数への参照である必要があります。つまり、必要な名前は次のようになります。

TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete:function(){currentPage=2}});

またはさらに良いことに、「インライン」ではない関数を定義してから、これを参照してください

于 2010-03-25T17:25:08.647 に答える
3

onCompleteは関数を想定しているため、currentPage=2関数内に関数名を入れてonComplete内に置くと機能します。

お気に入り:

TweenLite.to(vC, 10, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut, onComplete: changePageStatus});


private function changePageStatus ():void {
     currentPage = 2
}

関数をTween呼び出しに直接書き込むこともできますが、面倒です。

于 2010-03-25T17:24:20.597 に答える
0

以下は私が思いついた解決策ですが、それほど完璧ではないようです:/

TweenLite.to(vC, 2, {x:sect2X, y:sect2Y, rotation:0,ease:Elastic.easeInOut});
                currentPage=2;
                break;


if ((vC.x==sect2X)&&(vC.y==sect2Y)&&(currentPage==2)) {
            currentPage=21;
        } else if (currentPage==21) {
run something
}
于 2010-03-25T19:27:01.063 に答える