实际上我可以完成这段代码,但我对参数和removeEventListener有误解。我有两个具有相同目标的代码,这是我的第一个代码:
第一个代码:
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);
}
}
第二个代码:
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); 删除侦听器,这可以正常工作,但是在第一个代码中我不能使用第二个代码bobRun(startX:Number, startY:Number, endX:Number, endY:Number) 之类的参数。
在第二个代码中,我无法像第一个代码那样删除监听器 bob.removeEventListener(Event.ENTER_FRAME, animateBob); ,所以trace("bob.stop"); 不能在输出面板中停止,但我可以使用参数。
我需要参数和 removeEventListener 来构建我的项目,所以请帮助我。:'(