AS3游戏库存页面

时间:2017-10-16 03:06:29

标签: actionscript-3 flash flash-cs6

我是AS3的新手,决定开始一个简单的拖放装饰游戏。我的问题是,当我点击箭头时,我无法弄清楚如何制作另一页物品;还浏览项目类别。

以下是游戏SWF

的示例

还有一个问题。我正在为每个项目使用此代码。有没有办法让这个代码更紧凑,而不是复制和粘贴每个项目的代码?

var Clone1:MovieClip;

Ground01.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed);
function GroundPressed(event:MouseEvent):void
{
    Clone1 = new ground01();
    Clone1.x = 132;
    Clone1.y = -123;
    addChild(Clone1);
    Clone1.startDrag();
    Clone1.addEventListener(MouseEvent.MOUSE_DOWN,onClonedPlusPressed1);
}

function onClonedPlusPressed1(event:MouseEvent):void
{
    Clone1 = MovieClip(event.currentTarget);
    Clone1.startDrag();
}

stage.addEventListener(MouseEvent.MOUSE_UP, onStageReleased1);

function onStageReleased1(event:MouseEvent):void
{
    if(Clone1 != null){
        Clone1.stopDrag();
    }
            if(Clone1.hitTestObject(Trashcan)) {
        removeChild(Clone1); 
        Clone1 = null;
    }
}

1 个答案:

答案 0 :(得分:1)

假设您不熟悉动作脚本3和编程,可以使用任何编程语言重用函数,例如:

GroundPressed()

您可以随时重复使用此功能并应用于每个动画片段

像这样:

function GroundPressed(event:MouseEvent):void
{
    Clone1 = new ground01();
    Clone1.x = 132;
    Clone1.y = -123;
    addChild(Clone1);
    Clone1.startDrag();
    Clone1.addEventListener(MouseEvent.MOUSE_DOWN,onClonedPlusPressed1);
}

如果您想让您的代码更加紧凑并节省额外的Ground01.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed); Ground02.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed); Ground03.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed); ,您可以将Ground01,Ground02,Ground03分组到一个巨大的动画片段中,应用单个EventListener()。要指向正确的孩子,您需要EventListener()。我不记得实际的语法,但你的代码看起来如下所示:

e.target()

您可以详细了解function GroundPressed(event:MouseEvent):void { cloneItem = event.target; cloneItem.x = 132; cloneItem.y = -123; addChild(cloneItem); cloneItem.startDrag(); cloneItem.addEventListener(MouseEvent.MOUSE_DOWN,onClonedPlusPressed1); } here