1

実際にはこのコードを完成させることができますが、引数とremoveEventListenerを誤解しています。同じ目標を持つ 2 つのコードがあります。これが私の最初のコードです。

最初のコード:


    public function walk(){
        var bob:bob= new bob();
        bob.x = 0;
        bob.y = 300;
        addChild(bob);
        bobRun();
    }
    private function bobRun(){
        bob.addEventListener(Event.ENTER_FRAME, animateBob);
    }
    private function animateBob(event:Event) {
        if (bob.x <= 200){
            bob.x += 2;
            bob.gotoAndPlay(bob.currentFrame);
        } else { 
            bob.gotoAndStop(1);
            trace("bob.stop");
            bob.removeEventListener(Event.ENTER_FRAME, animateBob);
        }
    }
    

2番目のコード:


    public function walk(){
        var choose:boolean = false;
        bobRun(0, 300, 200, 300);
    } 
    private function bobRun(startX:Number, startY:Number, endX:Number, endY:Number){
        bob.addEventListener(Event.ENTER_FRAME, function(e:Event):void{
        startX = bob.x; startY = bob.y; 
        if (startX != endX || startY != endY){
            choose = true;
            if (startX < endX && startY > endY){
                bob.x += 1;
                bob.y -= 1;
            } if (startX > endX && startY < endY){
                bob.x -= 1;
                bob.y += 1;
            } if (startX == endX && startY > endY){
                bob.y -= 1;
            } if (startX == endX && startY < endY){
                bob.y += 1;
            } if (startX < endX && startY == endY){
                bob.x += 1;
            } if (startX > endX && startY == endY){
                bob.x -= 1;
            }
            bob.gotoAndPlay(bob.currentFrame);
        } else {
            bob.gotoAndStop(1);
            trace("bob.stop");
        }
        })
    }
    

最初のコードでは、bob.removeEventListener(Event.ENTER_FRAME, animateBob);を使用しています。リスナーを削除するとうまくいきますが、最初のコードでは2番目のコードbobRun(startX:Number, startY:Number, endX:Number, endY:Number) のような引数を使用できません。

2番目のコードでは、最初のコードのようにリスナーを削除できませんbob.removeEventListener(Event.ENTER_FRAME, animateBob); 、したがってtrace("bob.stop"); 出力パネルで停止できませんが、引数を使用できます。

プロジェクトをビルドするには引数と removeEventListener が必要なので、助けてください。:'(

4

1 に答える 1