Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 生成单个SWF';这是佛罗里达大学的一个大图书馆_Flash_Publish_Flash Cs5_Classname - Fatal编程技术网

Flash 生成单个SWF';这是佛罗里达大学的一个大图书馆

Flash 生成单个SWF';这是佛罗里达大学的一个大图书馆,flash,publish,flash-cs5,classname,Flash,Publish,Flash Cs5,Classname,我有一系列大型fla文件,它们被发布到swc中,然后直接用于flash项目。可能总共有1000多个对象。随着数量的增长,最终编译的swf变得相当大,因此我只想根据需要下载每个对象的单个swf。然后,我需要能够通过类名从最终的AS项目访问和克隆对象 这个问题是我找到的导出每个问题的唯一方法,1)复制并粘贴到新的fla文件中2)双击“编辑”以强制包含它,3)重置擦除后的链接(类)名称,4)发布(即文件->发布)并命名此swf。 这将需要相当长的一段时间才能完成其中的1000多个 虽然您可以右键单击库

我有一系列大型fla文件,它们被发布到swc中,然后直接用于flash项目。可能总共有1000多个对象。随着数量的增长,最终编译的swf变得相当大,因此我只想根据需要下载每个对象的单个swf。然后,我需要能够通过类名从最终的AS项目访问和克隆对象

这个问题是我找到的导出每个问题的唯一方法,1)复制并粘贴到新的fla文件中2)双击“编辑”以强制包含它,3)重置擦除后的链接(类)名称,4)发布(即文件->发布)并命名此swf。
这将需要相当长的一段时间才能完成其中的1000多个

虽然您可以右键单击库中的每个项以将其保存为swf,但它似乎不包括类名等,只包括该项。一旦我下载了这个,我不能克隆使用它多次没有下载它再次是不可接受的

是否有更快/更好的方法生成这些swf

(我确实简要地研究了xfl,但它看起来像是编写了一个脚本来完成这项工作,因为其中的一些未知因素比手工完成要花费更长的时间。)

您应该了解一下,它允许您扩展Flash/编写一个脚本来自动完成这项任务

例如,您可以编写一个脚本,在库中的元素之间循环,并仅为针对actionscript导出的movieclips导出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');
var doc=fl.getDocumentDOM();
var dir='file://'+doc.path.substr(0,(doc.path.lastIndexOf('/')+1));
var lib=文档库;
var code='var queue:LoaderMax=新的LoaderMax({name:“queue”})\n′;
var items=lib.items;
var iNum=items.length;
var路径;
变量名;
fl.outputPanel.clear();
对于(变量i=0;i
将此文件另存为.jsfl文件以运行它,将其放置在Flash(IDE)的Commands文件夹中,它将在界面的Commands菜单中弹出

这并不完美,但它给出了一个可以做什么的想法。第一件事是建立一个工作流,然后为它编写脚本

但有几件事我不明白,我正试图把它分解:

我有一系列大型fla文件 已经被发布到swc的 然后直接在闪光灯下使用 项目,大概总共1000个+ 对象。随着数字的增长,最终 编译后的swf变得相当大,所以 我想下载个人swf的 每个对象仅在需要时使用

因此,有些fla的资产需要在以后进行编码。 我想象一个swc将包含为actionscript导出的多个MovieClips 而且可能有更多的fla文件具有不同类型的资产

然后我需要能够访问和 从中通过类名克隆对象 期末考试作为一个项目

您的意思是使用swf文件实例化类吗

这个问题是我找到的唯一方法 要导出每个文件,请复制并 将其粘贴到新的fla文件中 单击“编辑”以强制执行 包括,3)重置悬挂机构(等级) 删除后的名称,4)发布 (即文件->发布)并将其命名为 主权财富基金

对于步骤1,是否可以右键单击MovieClip并选择ExportSWF/ExportSWC(取决于您的需要)? 我不明白你所说的“包括强制”是什么意思。 你的意思是为Actionscript勾选导出?谁/什么擦除了链接?

你应该看看哪个允许你扩展Flash/编写一个脚本来自动完成这项任务

例如,您可以编写一个脚本,在库中的元素之间循环,并仅为针对actionscript导出的movieclips导出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');
var doc=fl.getDocumentDOM();
var dir='file://'+doc.path.substr(0,(doc.path.lastIndexOf('/')+1));
var lib=文档库;
变量代码='var queue:LoaderMax=新的LoaderMax({name:“queue”});\n';
var items=lib.items;
var iNum=items.length;
var路径;
变量名;
fl.outputPanel.clear();
对于(变量i=0;i
将此文件另存为.jsfl文件以运行它,将其放置在Flash(IDE)的Commands文件夹中,它将在界面的Commands菜单中弹出

这并不完美,但它给出了一个可以做什么的想法。第一件事是建立一个工作流,然后为它编写脚本

但有几件事我不明白,我正试图把它分解:

我有一系列大型fla文件 已经被发布到swc的 然后直接在闪光灯下使用 项目,大概总共1000个+ 对象。随着数字的增长,最终 编译后的swf变得相当大,所以 我想下载个人swf的 每个对象仅在需要时使用

因此,有些fla的资产需要在以后进行编码。 我想象一个swc将包含为actionscript导出的多个MovieClips 而且可能有更多的fla文件具有不同类型的资产

然后我需要能够访问和 从中通过类名克隆对象 这个