【问题标题】:AS3 Game Inventory PagesAS3 游戏库存页面
【发布时间】:2018-03-27 12:08:05
【问题描述】:

我是 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;
    }
}

【问题讨论】:

  • “如何制作另一页项目” 创建一个新的 Sprite 或 MovieClip(然后双击该对象以编辑它自己的时间线,例如为文本和图形添加图层) .使用这个新的 MClip 是你的容器。寻找有关 AS3 链接的教程。然后 add/removeChild 可以显示/隐藏内容。

标签: actionscript-3 flash flash-cs6


【解决方案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);

如果您想让您的代码更加紧凑并节省编写额外的EventListener(),您可以将Ground01、Ground02、Ground03 组合成一个巨大的影片剪辑,应用单个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);
}

你可以阅读更多关于event.targethere的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多