まず、同じタイムラインとフレームにある 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 オブジェクトとこのShape オブジェクト docのドキュメントです。
以下は、ここにある変更された convertToGraphics メソッドを使用した実際のサンプル例です。
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);
}
}
よろしくお願いします
ps 2 時間の検索では十分ではありません