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