我可以通过我的库存系统为我的游戏获得一些提示。我想在我的库存中使用另一个对象(如门的钥匙)

时间:2014-11-03 10:38:52

标签: actionscript-3

这是我的主要班级:

package  {

import flash.display.*;


public class InventoryDemo extends MovieClip {
    var inventory:Inventory;

    public function InventoryDemo() {

    }
    public function initialiseInventory():void
    {
        inventory = new Inventory(this);
        inventory.makeInventoryItems([d1,d2]);
    }
}

}

我使用精灵指示器来显示物品在库存中。 这是我的孩子班:

package {
import flash.display.*;
import flash.events.*;

public class Inventory
{
    var itemsInInventory:Array;
    var inventorySprite:Sprite;

    public function Inventory(parentMC:MovieClip)
    {
        itemsInInventory = new Array  ;
        inventorySprite = new Sprite  ;
        inventorySprite.x = 50;
        inventorySprite.y = 360;
        parentMC.addChild(inventorySprite);

    }
    function makeInventoryItems(arrayOfItems:Array)
    {
        for (var i:int = 0; i < arrayOfItems.length; i++)
        {
            arrayOfItems[i].addEventListener(MouseEvent.CLICK,getItem);
            arrayOfItems[i].buttonMode = true;
        }
    }

    function getItem(e:Event)
    {
        var item:MovieClip = MovieClip(e.currentTarget);
        itemsInInventory.push(item);
        inventorySprite.addChild(item);
        item.x = itemsInInventory.length - 1 * 40;
        item.y = 0;
        item.removeEventListener(MouseEvent.CLICK,getItem);
        item.addEventListener(MouseEvent.CLICK,useItem);
    }

    function useItem(e:Event)
    {
        var item:MovieClip = MovieClip(e.currentTarget);
        trace(("Use Item:" + item.name));
    }
 }

}

目前我只能点击并跟踪输出,我想知道如何拖动精灵并将其用于另一个对象...就像一把钥匙来解锁一扇门。非常感谢,顺便说一下我在as3中的新功能,我试图从堆栈溢出中学习。

1 个答案:

答案 0 :(得分:2)

item.addEventListener(MouseEvent.CLICK,useItem);

var drag:Boolean;

function useItem(e:Event)
{
    var item:MovieClip = MovieClip(e.currentTarget);
    trace(("Use Item:" + item.name));
    if(drag == false)
    {
        item.startDrag();
        drag = true;
    }else{
        item.stopDrag();
        drag = false;
        findAction(e);
    }
}

function findAction(e)
{
    // Check the position of the key relative to the door.
}

没有真正检查过它,但是如果你做了类似的话,它可能会有效。