如何在库文件夹中添加所有符号以在运行时暂存

时间:2009-08-26 18:05:47

标签: actionscript-3 flash-cs4

我刚刚提交了这个问题,但我无法看到它是否张贴在任何地方,所以如果这是重复的话,我道歉。

对于Flash CS4项目,我不断导入新图像,将它们转换为动画片段并将它们存储在“Ornaments”文件夹下的库中。当程序初始化时,所有这些装饰品都需要在某个地方的舞台上。每次添加新符号时都不必将新符号拖到舞台上,是否可以在运行时将“Ornament”库文件夹中的所有符号添加到舞台上?

由于

1 个答案:

答案 0 :(得分:1)

如果您愿意,可以在代码中执行此操作,但您仍需要在代码中添加符号的名称。也就是说,该文件夹仅仅是在CS4库中进行组织的便利,并且它不会转换为代码(AFAIK)。

要在AS3中实例化该项,只需右键单击库中的符号,然后选中标记为“Export for ActionScript”的框。如果看不到,请单击“高级”按钮。它会将Class默认为符号的名称。这将是您可以在ActionScript中实例化以将实例放在舞台上的类。

你可以保留一个装饰名称数组并循环遍历它们将它们添加到舞台上:

var ornaments:Array = [OrnamentGold, OrnamentSilver, OrnamentBronze];

for each(var ornament:Class in ornaments)
{
    var ornamentClip:MovieClip = new ornament();
    addChild(ornamentClip);
}

如果您将所有实例命名为相同且仅增加一个尾随数字,您可以节省一些时间并只增加一个数字:

const NUM_ORNAMENTS:int = 5;

for(var i:int = 0; i < NUM_ORNAMENTS; i++)
{
    // ornaments are names Ornament0, Ornament1, Ornament2, etc. in the library
    var ornamentClass:Class = new getDefinitionByName("Ornament" + i) as Class;
    var ornamentClip:MovieClip = new ornamentClass();
    addChild(ornamentClip);
}