AS3中的重复

时间:2013-07-12 15:42:33

标签: actionscript-3 movieclip

所以,我一直想知道这一点,因为如果它不能用于这个新游戏,我将手动创建数百个不同的动画片段。所以,这就是我想知道的:

说我是否正在开发一个关于“冰淇淋”的游戏你必须为你的顾客创造不同的勺子。要获得一个冰淇淋圆锥,你点击圆锥体,一个生成,你可以拖动它。我该怎么做呢?我通常会做的就是制作一百个冰淇淋甜筒,使它们全部看不见,当它被点击时,让第一个可见,如果再次点击,看看第一个是否可见并使第二个可见,等等。我显然知道它们是一种更简单的方式..但我不知道那是什么。

我听说过复制电影剪辑,但我在某处读到它已在AS3中删除。

2 个答案:

答案 0 :(得分:0)

事实上它很可能也很容易。

1)单击一个对象并获取类名。

2)创建该类的新实例并将其放在显示列表中。

3)将每个帧上的新实例移动到鼠标坐标,直到检测到MouseEvent.MOUSE_UP事件。

您必须调整代码以适合您的项目,但这就是它的方式。我还没有对它进行过测试,但它应该有效。

import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;

var duplicate;
var className;

original.addEventListener(MouseEvent.MOUSE_DOWN,duplicateMe);

public function duplicateMe(event):void {
    className:Class = Class(getDefinitionByName(getQualifiedClassName(event.target)));
    duplicate = new className;
    addChild(duplicate);
    duplicate.addEventListener(MouseEvent.MOUSE_UP,endDrag);
    duplicate.addEventListener(MouseEvent.ENTER_FRAME,update);
}       


public function update(event):void {
    event.target.x = mouseX;
    event.target.y = mouseY;
}

public function endDrag(event):void {
    event.target.removeEventListener(MouseEvent.ENTER_FRAME,update);                    
}

答案 1 :(得分:0)

动画片段类型就像是动画片段的蓝图。人们可以根据需要创建尽可能多的动画片段。例如,movieclip类型cat可以有一个名为Simba的实例。所以:

var Simba:Cat = new Cat();

在Flash中,您只需选择正确的导出到actionscript选项即可导出类型。