2010-01-23 66 views
1

在我的代碼在這裏:AS3 conidtional聲明不工作

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。這部分工作。

什麼是不工作是我的條件語句,告訴它只有移動「男人」,如果他是在590或更大的X位置,因爲,當再次點擊2個按鈕之一,我不如果他已經在那裏,或者他已經搬出去,就要把他搬出去。

因此,出於某種原因,「人」在第二次點擊按鈕時仍然會移動,並且奇怪的是,「man」只會移動兩次,而不是正常的5次設置。

也許我可以改變if語句來檢查按鈕是否已經被點擊而不是「man」在哪裏?

感謝, 韋德

回答

0

有輕微的誤解。 addEventListener將永久註冊處理函數,而不僅僅是一次點擊。你想要做的就是在程序的開始處調用addEventListener一次,然後檢查處理函數內部的條件,以便如果它爲false,則跳過處理程序代碼。

+0

我想我明白了。 對不起,但我會怎麼寫寫作呢?我不太確定。 – 2010-01-24 00:32:24

+0

劃痕,明白了。非常感謝。 – 2010-01-24 00:39:18