2013-08-23 60 views
0

這個底部是到目前爲止的代碼爲一個單一的墜落物我有。 'DangerIN'是正在倒下的對象的實例名稱。這個班被命名爲'危險'。那麼我怎樣才能讓它循環,使它不斷下降,當它達到某個y值時,它就會自我消除。另外,我想要一個以上(最多5個)物體落下。如何循環閃光燈AS3落物一旦災區現場

var randomX:Number = Math.random() * 550; 
DangerIN.x = randomX; 
DangerIN.y = 96; 

var speed:Number = Math.random()*10; 

DangerIN.addEventListener(Event.ENTER_FRAME, moveDown); 

function moveDown(e:Event):void { 
    e.target.y += speed; 

    if(e.target.y >= 610) { 
     DangerIN.removeEventListener(Event.ENTER_FRAME, moveDown); 
    } 
} 
+0

展示一些你的代碼。你在哪裏/如何製作DangerIn? – putvande

+0

危險是一個影片剪輯和DangerIN是影片剪輯的實例名稱。這就是我對落物的所有代碼。 –

回答

0

這很容易。但要做到這一點,首先需要的東西掉落的數組,然後你需要你的e.target重新定位到頂部,一旦它低於你的閾值。

function moveDown(e:Event):void { 
    e.target.y += speed; 
    if (e.target.y >= 610) { 
     // reposition 
     e.target.x=math.random()*550; 
     e.target.y=96; 
    } 
} 

將此函數分配給每個要倒下的物體,觸及底部並重新顯示。

+0

這是如何刪除對象? _when它達到一定的y值,將其刪除self_ – putvande

+0

謝謝你,它的工作。 –

+0

@putvande他居然尋求無限循環,因爲他旁邊提到「拆除」,這使得它成爲無限循環。 – Vesper

0

要刪除本身可以在removeEventListener()後添加以下行:

parent.removeChild(this); 

但它並不漂亮,你應該以正確的方式:

存儲所有的危險中的對象數組,在危險類創建,比如去功能(),下移()或東西:

public function go():void 
{ 
    y+= speed; 
} 

,並在您創建的危險對象類作出這樣一個循環這樣的:

private function loop():void 
{ 
    for (var i:int = dangerObjArray.lenght - 1; i >= 0; i--) 
    { 
     dangerObjArray[i].go(); 

     if (dangerObjArray[i].y >= maxY) 
     dangerObjArray.splice(i , 1); 
    } 
} 
+0

我是新的行動腳本3,所以我不知道如何製作數組。 –