実際にはこのコードを完成させることができますが、引数と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 が必要なので、助けてください。:'(