2012-10-19 26 views
2

我一直在网上搜索约2个小时,寻找扩展名(MXP)或JSFL脚本来帮助我将舞台上的300多个形状转换为符号。名称并不重要,它们可以是symbol_001,002等。它似乎是一个常见任务,我很惊讶没有人在stackoverflow上询问,甚至是在actionscript.org上。将多个形状和组转换为Flash CS5中的影片剪辑/符号

我碰到这一个,但它不是我所需要的...这只是做了一个符号在一个时间...: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/

请帮忙!

+0

我想人们首先将它们绘制为符号,然后将它们放置在舞台上,而不是相反。这更容易,更通用。我认为你应该使用你的第一个发现,超过300次。 – Vesper

+0

嗯,在这种情况下,我的符号是单词,它更容易输入整个段落,然后使用我创建的JSFL脚本来分割单词。 – KorinW

回答

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小时的搜索是不够的

+0

太棒了!谢谢。我会继续研究。感谢您的帮助 – KorinW

+0

我收到“Access if undefined property fl”错误,我该如何解决?谢谢! –

+0

'fl'是Flash中的标准对象JSFL - 可能会提出单独的问题 –