转换多个形状& Flash CS5中的组到动画片段/符号

时间:2012-10-19 05:27:48

标签: actionscript-3 flash-cs5 converter jsfl

我一直在网上搜索大约2个小时,现在正在寻找扩展(MXP)或JSFL脚本,以帮助我将舞台上的300 +形状转换成符号。这些名字并不重要,它们可能是symbol_001,002等。看起来这是一项非常普遍的任务,我很惊讶没有人问过stackoverflow,甚至在actionscript.org上。

我遇到了这个,但它不是我需要的......它一次只做了一个符号......:http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1848523

虽然这个可以做我想要的但是对于位图,只有库中的那些。 http://benclinkinbeard.com/2006/07/flash-extension-convert-bitmaps-to-symbols/

请帮忙!

1 个答案:

答案 0 :(得分:3)

首先是同一时间轴和框架上的300多个形状? 其次是那些形状分组?

var el = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
for(var i = 0; i<el.length; i++)
{
    fl.trace(i+" - " + el[i]);
}

这将枚举第一帧中第一层时间轴上的所有元素(包括形状)。

现在,未分组的形状将被视为单个形状,矩形或椭圆形基元将被分开。

这是Element object和此Shape object doc的文档。

以下是工作示例示例我使用修改后的convertToGraphics方法here

var el = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
for(var i = 0; i<el.length; i++)
{
    fl.trace(i+" - " + el[i]+", "+el[i].isGroup);
    convertToGraphics(el[i], "shape"+i);
}

//converts all current elements on the current timeline to movie clips with a effectSymbols move to Effect folder in the library and center registration point
function convertToGraphics(el, name)
{
    try
    {
        var symbolName = name;

        var cur_lib = fl.getDocumentDOM().library;
        fl.getDocumentDOM().selectNone();

        fl.getDocumentDOM().selection = [el];
        while(cur_lib.itemExists(symbolName+i))
            symbolName=symbolName+1;
        var newSym = fl.getDocumentDOM().convertToSymbol("movie clip", symbolName+i, "center");
    }
    catch (e)
    {
        fl.trace("Exception in : convertToGraphics" + e);
    }
}

最好的问候

P.S。 2小时的搜索还不够