自动导入/重命名Flash资产

时间:2011-05-17 12:49:21

标签: flash actionscript-3 automation animated-gif

所以我有一个拥有大量资产的AS3闪存项目,目前大约有1000个,但可能会扩展到几千个。它们都是图像,但其中一半是动画GIF,因此我无法在运行时导入它们。我只考虑将它们拖入flash项目,但我似乎无法控制命名方案。基本上,我想知道的是:

有没有办法自动导入和重命名Flash资源,例如“导入这1000个文件并将其导出为具有此名称的Actionscript”?

此外,我有更好的方法来做这件事吗?我已经尝试了http://code.google.com/p/as3gif/ AS3GIF,但它与我正在使用的更大的GIF动画(650x450)相抗衡。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

Jsfl是你的朋友。 Jsfl是Flash IDE脚本语言,你可以自动化很多东西,比如重命名所有的lib剪辑:

function main()
{
    var DOM = fl.getDocumentDOM();
    var lib = DOM.library.getSelectedItems();

    searchedClip = prompt("Search in clip name :");
    if(searchedClip == null) return;

    replaceClip = prompt("Replace by :");
    if(replaceClip == null) return;

    fl.outputPanel.clear();

    nbRes = 0;
    for(var i =0; i < lib.length; ++i)
    {
        name = lib[i].name.split("/");
        name = name[name.length-1];
        nIndex = name.toUpperCase().indexOf(searchedClip.toUpperCase());
        if(nIndex != -1)
        {
            ++nbRes;
            fl.trace(lib[i].name);
            lib[i].name = name.substring(0,nIndex) + replaceClip + name.substring(nIndex+searchedClip.length);
        }
    }
    if(nbRes) fl.trace("\n"+nbRes+" results");
    else fl.trace("no result");
}
main();

查看Flash IDE文档(http://livedocs.adobe.com/flash/9.0/main/flash_cs3_extending.pdf for CS3 Flash IDE Version)

答案 1 :(得分:0)

如果我没记错的话,如果所有的图像都被命名​​为“image0”,“image1”等,当你将第一个图像添加到Flash时,它会说“看起来像这个图像是一个顺序,你想要全部导入它们吗?“那需要一点时间。一旦他们进入,您可以按住Shift键单击以选择所有这些以给他们一个导出名称(如果您不想更改它,您可以保留他们的名字,它应该没问题。)

为什么不能再次在运行时加载这些? Flash甚至可以播放GIF动画,那么即使重要吗?导出具有许多图像的SWF将会降低您的工作效率,可能会损害您的计算机(当文件大小变大时,Flash会有点不稳定)。等待SWF在客户端下载将是一个杀手。特别是如果您的客户不打算查看所有图像 - 那么您将丢弃MB的带宽。

我要么在运行时加载它们(理想情况下 - 加载压缩的xml文件要快得多,容易),或者如果它们绝对必须在fla中,我会把它分解成倍数。