我刚刚提交了这个问题,但我看不到它是否在任何地方发布,所以如果这是重复的,我深表歉意。
对于 Flash CS4 项目,我不断地导入新图像,将它们转换为影片剪辑,并将它们存储在“Ornaments”文件夹下的库中。所有这些装饰品都需要在程序初始化时出现在舞台上的某个地方。每次添加新符号时都不必将新符号拖到舞台上,是否可以在运行时将“装饰”库文件夹中的所有符号添加到舞台上?
谢谢
我刚刚提交了这个问题,但我看不到它是否在任何地方发布,所以如果这是重复的,我深表歉意。
对于 Flash CS4 项目,我不断地导入新图像,将它们转换为影片剪辑,并将它们存储在“Ornaments”文件夹下的库中。所有这些装饰品都需要在程序初始化时出现在舞台上的某个地方。每次添加新符号时都不必将新符号拖到舞台上,是否可以在运行时将“装饰”库文件夹中的所有符号添加到舞台上?
谢谢
如果您愿意,您可以在代码中执行此操作,但您仍必须将符号名称添加到代码中。也就是说,该文件夹只是为了方便在 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);
}