as3条件语句不起作用

时间:2010-01-23 23:48:06

标签: actionscript-3 actionscript conditional if-statement

在我的代码中:

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”的位置?

谢谢, 涉

1 个答案:

答案 0 :(得分:0)

有一点误解。 addEventListener将永远注册处理函数,而不仅仅是一次点击。你想要做的是在程序开头调用addEventListener一次,然后检查处理函数内部的条件,这样如果它为false,则跳过处理程序代码。