当玩家触摸两次触摸屏时,使一个项目消失



我正在尝试为触摸屏(android)制作一个flash游戏。我的玩家可以拿一些物品放在他的库存中。然后,玩家可以点击库存中的物品,并将其拖动到场景中他想要的位置。但是,当玩家双击屏幕时,我想让项目从屏幕上消失。目前,我的球员只需要轻击一个。(这很令人沮丧,因为如果他没有把项目放在正确的空间里,并想通过再次拖动项目来纠正它,它就会消失,因为他点击了错误的空间)。

我知道我必须更改我的"removeDraggedItem"功能,但我不知道如何告诉它,只有当玩家双击屏幕(而不仅仅是点击一次)时,我才想要这个功能

这是我的密码。如果有人有想法。。。。

public function itemClick(e:Event):void{
            inv.draggingItem = false;
            var nameofMC:String;
            var tempMC;
            var draggedName:String = draggedItem.displayName;
            if (draggedItem.lookTag)
                draggedName = draggedName + draggedItem.lookTag;
            if (newFriend){
                nameofMC = "action_"+draggedName+"_"+newFriend.displayName;
                //trace ("Looking for "+nameofMC);
                try {
                    tempMC = getDefinitionByName(nameofMC);
                    //trace ("MC found.");
                    removeDraggedItem();
                    if (speech)
                        speech.dispatchEvent(new Event("stopTalking"));
                    tempMC = new tempMC;
                    playerAction = new PlayerAction(stageRef, draggedItem, newFriend, tempMC, false);
                }
                catch(e){
                    //trace ("No MC found.  Checking for dialog option...");
                    try {
                        var tempData = linesData.dialog[newFriend.displayName].useObject[draggedItem.displayName];
                        if (tempData != "" && tempData != null){
                            //trace ("Dialog option found.");
                            removeDraggedItem();
                            alignPlayer();
                            if (speech)
                                speech.dispatchEvent(new Event("stopTalking"));
                            dialog = new Dialog(stageRef, newFriend, draggedItem, false);
                        } 
                    }
                    catch(e){
                        //trace ("No dialog option found.  Defaulting to player line.");
                        alignPlayer();
                        if (speech)
                            speech.dispatchEvent(new Event("stopTalking"));
                        var actionName:String = "Use_"+newFriend.displayName;
                        if (newFriend.lookTag)
                            actionName = actionName+newFriend.lookTag;
                        speech = new Speech(stageRef, draggedItem, actionName);
                    }
                }
            } else {
                removeDraggedItem();
            }
        }
private function removeDraggedItem():void{
            stageRef.removeEventListener(MouseEvent.MOUSE_MOVE, dragItem);
            stageRef.removeEventListener(Event.ENTER_FRAME, itemHitTest);
            draggedItem.removeEventListener(MouseEvent.CLICK, itemClick);
            stageRef.removeChild(draggedItem);
            toolbar.useText.text = "";
            if (stageRef.contains(this))
                stageRef.removeChild(this);
            Mouse.show();
            Engine.playerControl = true;
        }

在第一次点击时,将变量(如screenTap)设置为true,并将计时器设置为双击中两次点击之间允许的最大毫秒数。当计时器到期时,重置屏幕点击为false
然后,在您的点击屏幕处理程序中,检查screenTap是否为true。如果是,请移除该项目。

尝试使用MouseEvent.DOUBLE_CLICK而不是MouseEvent.CLICK.

确保为您的舞台启用双击:

stageRef.doubleClickEnabled=true; 

然后使用:

stageRef.addEventListener(MouseEvent.DOUBLE_CLICK,removeDraggedItem);

相关内容

最新更新