0

所以,我一直在想这个问题,因为如果它不适用于这个新游戏,我将不得不手动创建数百个不同的电影剪辑。所以,这就是我想知道的:

假设我正在开发一款关于“冰淇淋”的游戏,您必须在其中为您的客户创建不同的勺子。要获得冰淇淋蛋筒,您单击蛋筒并生成蛋筒,您可以拖动它。我该怎么做呢?我通常会做的是创建一百个冰淇淋甜筒,使它们全部不可见,然后单击它时使第一个可见,如果再次单击,则查看第一个是否可见并使第二个可见,依此类推。我显然知道它们是一种更简单的方法..但我不知道那是什么。

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

4

2 回答 2

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);                    
}
于 2013-07-12T16:19:26.160 回答
0

影片剪辑类型就像影片剪辑的蓝图。可以根据需要创建尽可能多的这些电影剪辑。例如,movieclip 类型的 cat 可以有一个名为 Simba 的实例。所以:

var Simba:Cat = new Cat();

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

于 2013-07-12T16:23:08.270 回答