JSFL書いてみたメモ

Flashで作業してると、 同じ作業を何度となく繰り返す場面に出くわすんですが、 どうにかして回避したいなぁ。って思ってたところで JSFL ってものに遭遇。 どうやらJavaScriptで書けるFlashの機能拡張らしい。

で、色々調べながら書いてみたのがコレ。 berianiaocc が以前に話題にしてた、 ライブラリの画像をグラフィックスでラップして、 さらにムービークリップにしてくれるJSFL。完全に 車輪 ですよ!!

/**
 *  ConvertToSymbol.jsfl
 **/
(function ()
{
    //  ファイルが開かれてないとココでおしまい
    if (!fl || !fl.getDocumentDOM()) return alert("ドキュメントオブジェクトが見つかりません。");

    var DOC = fl.getDocumentDOM();
    var LIB = DOC.library;

    LIB.items.filter(function (element)
    {
        //  Bitmapなライブラリ以外はココではじく
        return element.itemType == 'bitmap' ? true : false;
    })
    .filter(function (element)
    {
        var newName = element.name.split(".")[0] + "_g";
        //  既に定義されていれば除く
        if (LIB.itemExists(newName)) return false;
        //  Graphicsを生成
        LIB.addNewItem("graphic", newName);
        //  BitmapをGraphicsでラップする
        LIB.editItem(newName);
        LIB.addItemToDocument({x:0, y:0}, element.name);
        //  ポジションの補正
        var rect = DOC.getSelectionRect();
        DOC.setSelectionBounds({
            left: 0,
            top: 0,
            right: rect.right - rect.left,
            bottom: rect.bottom - rect.top
        });
        DOC.exitEditMode();

        return true;
    })
    .filter(function (element)
    {
        var name = element.name.split(".")[0];
        var gName = name + "_g";
        var mcName = name + "_mc";
        //  既に定義されていれば除く
        if (LIB.itemExists(mcName)) return;
        //  MovieClipを生成
        LIB.addNewItem("movie clip", mcName);
        //  GraphicsをMovieClipでラップする
        LIB.editItem(mcName);
        LIB.addItemToDocument({x:0, y:0}, gName);
        //  ポジションの補正
        var rect = DOC.getSelectionRect();
        DOC.setSelectionBounds({
            left: 0,
            top: 0,
            right: rect.right - rect.left,
            bottom: rect.bottom - rect.top
        });
        DOC.exitEditMode();

        return true;
    });

})();
// vim: filetype=javascript fenc=utf-8 bomb

とりあえず良い感じに出来た(と思う)。 Flashでの作業中に、メンドクサイって3回思ったら JSFL 作るようにしよう :-P

Posted at: 
2008/04/25 00:49:17
4 Comments
0 TrackBacks
Tags: 
Flash
JavaScript
Trackback: 
http://humming.via-kitchen.com/2008/04/25/jsfl-memo/trackback/

TrackBacks

まだ登録されていません。

Comments

berian

おぉ!さすがだ!!綺麗にまとまってる。
なるほど、filterねー。
filterって、最終的にtrueをreturnしたelementの配列が返るのかな。

Created at: 
2008/04/25 10:14:39

nobu

>berian
JavaScriptって事でグニョグニョにしてみたよ :-P
trueとして評価されるものを返すと次の処理に渡せるよー。

Created at: 
2008/04/25 11:07:58

iaocc

ぉぉー!完成版ありがとうございますー
しみじみとソースを見てみると、こんなんなってるんだーへぇーという感じwwwデスw

まだまだ欲しいJSFLが色々あるので、つくってみたいので、
わからなくなったら教えてください><!

Created at: 
2008/04/28 10:27:14

nobu

>iaocc
自分もまだまだ勉強中なので、
分からん事だらけでござるよー。

野良なJSFLの上手い管理方法を見つけないと、
家と会社の同期がメンドクサイっすなー。

Created at: 
2008/04/28 10:31:41

Add Comment

Add Comment