2016-04-06 32 views
-1

我想做一個拖放遊戲,基本上我有三個條件,如果拖動的項目放在目標上,而不是它應該然後將用戶帶到另一個框架(遊戲結束),但是如果放置的物品與目標匹配,那麼只需將物品放置在目標頂部即可。ActionScript - 如何通過if語句條件從屏幕中刪除項目/對象

這是我的代碼:

import flash.events.MouseEvent; 
import flash.display.DisplayObject; 

var objectoriginalX:Number; 
var objectoriginalY:Number; 

plastic_1.buttonMode = true; 
plastic_1.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
plastic_1.addEventListener(MouseEvent.MOUSE_UP, plasticwastetarget);    

function pickupObject(event:MouseEvent):void 
{ 
    event.target.startDrag(); 
    event.target.parent.addChild(event.target); 
    objectoriginalX = event.target.x; 
    objectoriginalY = event.target.y; 
} 

function plasticwastetarget(event:MouseEvent):void 
{ 
    event.target.stopDrag(); 

    var matchingTargetName:String = "plasticWaste"; 
    var matchingTarget:DisplayObject = getChildByName(matchingTargetName); 
    if(event.target.dropTarget.parent !== matchingTarget) 
    {  
     gotoAndStop(20); 
    } 
    else if(event.target.dropTarget != null && event.target.dropTarget.parent == matchingTarget) 
    { 
     event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
     event.target.removeEventListener(MouseEvent.MOUSE_UP, plasticwastetarget); 
     event.target.buttonMode = false; 
     event.target.x = matchingTarget.x; 
     event.target.y = matchingTarget.y;  
    } 
    else 
    { 
     event.target.buttonMode = true; 
     gotoAndStop(20); 
     // How can I remove the item from screen and just go to frame 20 
    } 
} 

我遇到的問題是,如果用戶位置上是不應該匹配目標的項目,然後在項目只是停留在屏幕上整個動畫,是無論如何,我可以刪除或隱藏該對象/項目?

這是我做的檢查:

else 
{ 
    event.target.buttonMode = true; 
    gotoAndStop(20); 
    // How can I remove the item from screen and just go to frame 20 
} 

我是新使用ActionScript,我更不知道如何解決這個問題,請有人可以幫助我解決這個問題,謝謝。

+0

可以使用隱藏:'item.visible = FALSE;',並刪除它:'item.parent.removeChild(項目);'... – akmozo

回答

1

試試這個

else 
{ 
    event.target.buttonMode = true; 
    gotoAndStop(20); 
    // How can I remove the item from screen and just go to frame 20 
    event.target.parent.removeChild(event.target); 
}