你应该JSFL看看哪些允许您扩展Flash /编写一个脚本,以便为您自动执行此任务。
例如,您可以编写一个脚本,循环访问库中的元素,并导出swf,仅导出为动作脚本导出的动画片段,并生成位于导出完成时位于剪贴板中的代码位:
var doc = fl.getDocumentDOM();
var dir = 'file:///' + doc.path.substr(0,(doc.path.lastIndexOf('/')+1));
var lib = doc.library;
var code = 'var queue:LoaderMax = new LoaderMax({name:"queue"});\n';
var items = lib.items;
var iNum = items.length;
var path;
var name;
fl.outputPanel.clear();
for(var i = 0 ; i < iNum ; i++){
if(items[i].linkageExportForAS){
name = items[i].linkageClassName;
path = dir+name+'.swf';
items[i].exportSWF(path);
code += 'queue.append(new SWFLoader("'+name+'.swf", {name:"'+name+'"));\n';
}
}
fl.clipCopyString(code);
fl.outputPanel.trace('symbols exported as swfs, code is in your clipboard');
保存此作为.jsfl文件来运行它,把它放在闪存(IDE)的命令文件夹,它会在命令菜单弹出的界面。
这并不完美,但它提供了一个什么可以做的想法。首先是建立一个我想象的工作流程,然后为它编写脚本。
有几件事情我不明白,虽然,我试图打破它:
我有一系列的大FLA文件 ,正在发布到SWC的 ,然后直接使用在闪光灯 项目。可能总共有1000+个以上的对象。随着数量的增长,最终 编译后的swf变得相当大,所以 我只想根据需要下载每个对象的 个别swf。
因此,有些资产需要稍后编码。 我想象一个SWC将包含导出动作 导出多个动画片段,并且可能有更多的fla文件具有不同类型的资产。
然后我需要能够通过类名从 访问和 克隆对象的最终AS项目。
你的意思是使用getDefinition实例化swf文件中的类吗?
的问题是,我发现 出口每一个是1)复制和 其粘贴到一个新的FLA文件2)双击 点击“编辑”的唯一方式,迫使它 包括, 3)重置联系人(类) 名称,因为它已被擦除,4)发布 (即文件 - >发布)并将其命名为swf。
对于第1步,您是否可以不右键单击MovieClip并选择ExportSWF/ExportSWC(取决于您的需要)? 我不明白你的意思是'强迫它包括'。 你的意思是勾选Export for Actionscript?谁/什么擦拭链接?
感谢您的脚本想法,我会看看。回答你的问题。 1)通过getDefinition或仅通过获取构造(例如Object(mc).contructor)作为示例。 2)出于某种原因,当你点击右键时,即使在一个资产的导出操作被选中,并且一个类名被设置,它也不包括类信息。只有当你使用文件 - >发布它才会被包含。不知道为什么。 – Preston 2011-01-11 01:01:10