AS3 游戏库存页面
Posted
技术标签:
【中文标题】AS3 游戏库存页面【英文标题】:AS3 Game Inventory Pages 【发布时间】: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 可以显示/隐藏内容。 【参考方案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.target
here的信息。
【讨论】:
以上是关于AS3 游戏库存页面的主要内容,如果未能解决你的问题,请参考以下文章