2012-10-19 45 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 - 可能會提出單獨的問題 –