2012-10-11 82 views
1

我的舞臺上有一個可拖動的動畫片段。當它擊中另一個對象/動畫片段時,出現「hit」字樣。到現在爲止還挺好。但是,我希望可拖動的動畫片段可以擊中多個其他對象,並且每個對象都有不同的反應(如加載其他動畫片段或其他內容)。多個hittest AS3

這是我對部分則hitTest代碼:

import flash.events.Event; 

this.addEventListener(Event.ENTER_FRAME, handleCollision) 

function handleCollision(e:Event):void 
{ 
    if(blok3.hitTestObject(schaap)) 

     { 
      output_txt.text = "HIT" 
     } 
     else 
     { 
      output_txt.text = "" 
     } 

} 

SCHAAP是拖動對象,blok3是觸發字「打」的對象時,拖動對象擊中它。

我希望你們能幫助我!

+0

我打算建議使用switch/case而不是if,因爲所有這些if語句在你的處理器上比switch/case語句要困難得多,但這只是我的觀點 –

回答

0

你已經有一個扳機和一個碰撞的輸出(如果blok3 htis schaap,輸出「HIT」),這樣一個簡單的擴展將是如果添加另一個低於現有的語句:

function handleCollision(e:Event):void 
{ 
    if(blok3.hitTestObject(schaap))  
    { 
     output_txt.text = "HIT" 
    } 
    // else if statement to check for collision on second object 
    else if(differentBlok.hitTestObject(schaap)) 
    { 
     output_txt.text = "SMASH" 
    } 
    else 
    { 
     output_txt.text = ""   
    } 

} 

從這裏您可以查看存儲數組中的對象並循環遍歷數組來檢查衝突,而不是爲每個數據單獨分配一個if語句。