2

私は約2時間ウェブを検索していて、ステージ上にある300以上の形状をシンボルに変換するのに役立つ拡張機能(MXP)またはJSFLスクリプトを探しています。名前は関係ありません。symbol_001、002などの可能性があります。stackoverflowやactionscript.orgで誰も質問していないことに驚かされるほど、一般的なタスクのようです。

これに出くわしましたが、必要なものではありませんでした...一度に1つのシンボルしか実行しませんでした...: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/

助けてください!

4

1 に答える 1

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 オブジェクトとこの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 時間の検索では十分ではありません

于 2012-10-19T08:47:59.520 に答える