Actionscript 3 AS3游戏目录页面
我是AS3的新手,决定制作一个简单的拖放装饰游戏来开始。我的问题是,当我点击箭头时,我不知道如何制作另一页的项目;还可以在项目类别中导航 这是一个游戏的例子 还有一个问题。我对每一项都使用这个代码。有没有办法让代码更紧凑,而不是复制和粘贴每个项目的代码Actionscript 3 AS3游戏目录页面,actionscript-3,flash,flash-cs6,Actionscript 3,Flash,Flash Cs6,我是AS3的新手,决定制作一个简单的拖放装饰游戏来开始。我的问题是,当我点击箭头时,我不知道如何制作另一页的项目;还可以在项目类别中导航 这是一个游戏的例子 还有一个问题。我对每一项都使用这个代码。有没有办法让代码更紧凑,而不是复制和粘贴每个项目的代码 var克隆1:MovieClip; Ground01.addEventListener(MouseEvent.MOUSE_向下,按地面); 功能已按下(事件:MouseEvent):无效 { 克隆1=新的ground01(); 克隆1.x=132
var克隆1:MovieClip;
Ground01.addEventListener(MouseEvent.MOUSE_向下,按地面);
功能已按下(事件:MouseEvent):无效
{
克隆1=新的ground01();
克隆1.x=132;
克隆1.y=-123;
addChild(克隆1);
克隆1.startDrag();
克隆1.addEventListener(MouseEvent.MOUSE_DOWN,onClonedPlusPressed1);
}
函数onClonedPlusPressed1(事件:MouseEvent):void
{
Clone1=MovieClip(event.currentTarget);
克隆1.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP,onstagerLeased1);
函数onStageReleased1(事件:MouseEvent):void
{
如果(克隆1!=null){
Clone1.stopDrag();
}
if(Clone1.hitTestObject(垃圾桶)){
removeChild(克隆1);
克隆1=null;
}
}
假设您不熟悉动作脚本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);
}
您可以随时重复使用此功能并将其应用于每个movieclips
像这样:
Ground01.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed);
Ground02.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed);
Ground03.addEventListener(MouseEvent.MOUSE_DOWN, GroundPressed);
如果你想让你的代码更加紧凑,并且省去编写额外的EventListener()
,你可以将Ground01、Ground02、Ground03组合成一个巨大的movieclip应用一个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
“如何制作另一页项目”的信息,创建一个新的精灵或MovieClip(然后双击该对象以编辑其自己的时间线,如为文本和图形添加层)。使用这个新的MClip是你的容器。查找有关AS3链接的教程。然后add/removeChild可以显示/隐藏内容。