Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3游戏目录页面_Actionscript 3_Flash_Flash Cs6 - Fatal编程技术网

Actionscript 3 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

我是AS3的新手,决定制作一个简单的拖放装饰游戏来开始。我的问题是,当我点击箭头时,我不知道如何制作另一页的项目;还可以在项目类别中导航

这是一个游戏的例子

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

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可以显示/隐藏内容。