2011-08-31 37 views
0

我正在嘗試編寫一個平滑過渡片,我不知道發生了什麼。 昨天晚上我離開了它,我認爲它現在不工作。Flash AS3 if/else簡單問題

它在這裏。

function btnclick(event:Event):void 
{ 
    if(event.target == load1 || load2) 
    { 
     trace("working"); 
    } 
    else 
    { 
     trace("not "); 
    } 
} 

上我的舞臺,我有3個按鈕,

load1.addEventListener(MouseEvent.CLICK, btnclick); 
load2.addEventListener(MouseEvent.CLICK, btnclick); 
load3.addEventListener(MouseEvent.CLICK, btnclick); 

的3分按鈕的實例是

load1, load2 and load3. 

當我點擊按鈕LOAD1或裝入2,我得到的痕跡 「工作」 ,但是當我按下按鈕load3時,當它應該說「不」時,我仍然在「工作」

只是爲了檢查我改成了這樣:

function btnclick(event:Event):void 
{ 
    if(event.target == load1 || load2) 
    { 
      trace("working"); 
    } 
    else if (event.target == load3) 
    { 
      trace("not "); 
    } 
} 

和同樣的問題,他們都說「工作」

任何的想法是什麼,我很想念?

回答

3

試試這個:

function btnclick(event:Event):void{ 


    if(event.target == load1 || event.target == load2) { 
      trace("working"); 
      } else { 
       trace("not "); 
      } 

} 

但我建議你使用currentTarget而不是target

function btnclick(event:Event):void{ 


    if(event.currentTarget == load1 || event.currentTarget == load2) { 
      trace("working"); 
      } else { 
       trace("not "); 
      } 

} 

與你的問題的代碼是event.target == load1 || load2。並且它相當於(event.target == load1) || (load2),其中Boolean(load2)true如果load2不是null。所以event.target == load1 || load2總是true在你的情況。

+0

你好Constantiner,我不100%理解。但它的工作。非常感謝你。 – somdow

+0

不客氣:) – Constantiner

4

簡單的事情:你的情況是錯誤的!

if(event.target == load1 || load2) { 

計算結果:

IF (event.target == load1) 
OR IF (load2 is not empty) 

由於裝入2是你的按鈕,這將是永遠true

將其更改爲:

if(event.target == load1 || event.target == load2) {