在我的代码中:
var manTimer:Timer = new Timer(1700,5);
manTimer.addEventListener(TimerEvent.TIMER, moveMan);
function moveMan(e:TimerEvent):void {
var manX:Tween = new Tween(man, "x", Regular.easeIn, man.x, man.x - 100, 1.5, true);
}
function startMan(e:MouseEvent):void {
manTimer.start();
var manX:Tween = new Tween(man, "x", Regular.easeIn, man.x, man.x - 100, 1.5, true);
}
if(man.x > 589) {
paper.btnElScorcho.addEventListener(MouseEvent.CLICK, startMan);
paper.btnTheGoodLife.addEventListener(MouseEvent.CLICK, startMan);
}
我试图得到它,以便当点击btnElScorcho或btnTheGoodLife时它会将我的“男人”mc移到舞台上。它从590px开始,到-10px结束。那部分正在发挥作用。
什么不起作用的是我的条件声明,告诉它只要移动“man”,如果他处于590或更高的x位置,因为,当再次点击其中一个按钮时,我不想要如果他已经在那里,或者他已经搬出去,就把他赶出去。
所以出于某种原因,当第二次点击按钮时“man”仍会移动,奇怪的是,“man”只会移动两次,而不是正常的5次设置。
也许我可以更改if语句来检查按钮是否已被点击而不是“man”的位置?
谢谢, 涉
答案 0 :(得分:0)
有一点误解。 addEventListener将永远注册处理函数,而不仅仅是一次点击。你想要做的是在程序开头调用addEventListener一次,然后检查处理函数内部的条件,这样如果它为false,则跳过处理程序代码。