さんまがおいしい季節だねー(´・ω・`)

Flash のライブラリを作る方法

こんばんわ♪さくらです☆彡

今日は Flex3 で Flash のライブラリを作る方法を説明するわ!
とりあえず Flash + ブラウザで printf デバッグで紹介した JavaScript の alert を呼び出す方法を例にライブラリを作るわね!

ソースの配置

Flash というか ActionScript というか Flex にも、Java みたいな面倒なソース配置基準があるわ。
ホントうっとおしいったらありゃしない。

とりあえず今回の例では mylib パッケージをライブラリにするわね。
mylib パッケージに含まれるクラスは Debug クラスを一つよ。
中身はこんな感じ。static 関数一個ポッキリね。

package mylib {
    import flash.external.ExternalInterface;
    public class Debug {
        public static function alert(mesg:*):void {
            if (ExternalInterface.available) {
                ExternalInterface.call('alert', String(mesg));
            } else {
                trace(String(mesg));
            }
        }
    }
}

このファイルは mylib/Debug.as として保存するの。
起点ディレクトリはどこでもいいんだけど、必ず mylib ディレクトリに Debug.as ファイルを置かなきゃならないの。注意してね!

ライブラリのコンパイル

中身はこれだけだからもうコンパイルするわね。
ライブラリのコンパイルには compc コマンドを使うの。mxmlc は使わないわ。
compc も当然 Flex3 SDK 導入ガイド に書いたような問題があるわ。
動かなかったらあっちの記事も見てちょうだい!

compc の実行方法はこんな感じね!

$ compc -output mylib.swf  \
-include-classes mylib.Debug -source-path .

コマンドラインオプションの説明をするわ。
まず -output オプションは作成するライブラリファイル名ね。必須よ!
次に -include-classes はライブラリに含めるクラス名を指定するの。mylib から始まる完全な形式で指定する必要があるわ!
最後の -source-path はソースの検索パスね。実際のソースが ./mylib/Debug.as にあって、ライブラリに入れるクラスが mylib.Debug ならこの指定で OK よ。後は自分で考えてちょうだい!

コンパイルに成功したら mylib.swf っていうファイルが出来上がるわ。これがライブラリよ!

ライブラリを使う

早速ライブラリを使ったコードを書いてみるわ。AlertTest.as ね!

package {
    import flash.display.*;
    import mylib.*;
    public class AlertTest extends Sprite {
        public function AlertTest() {
            Debug.alert("AlertTest()");
        }
    }
}

保存したら mxmlc でコンパイルよ!
自分で作ったライブラリを使うときは -library-path オプションにライブラリファイルを追加するの。

$ mxmlc -library-path+=mylib.swf AlertTest.as

コンパイルしたら AlertTest.swf ができるわ。
flashplayer かブラウザから実行するとデバッグメッセージが出力されるはずよ。

ライブラリは静的に AlertTest.swf に組み込まれてるから、Web に配置したり配布するときはこのファイル単体で OK よ。mylib.swf を一緒に配布する必要はないわ。

Flash でのライブラリ

Flash にはもう一種類 RSL (Runtime Shared Library) っていうライブラリがあるんだけど、実はライブラリっていう単語がつくのは RSL だけみたいなの。
今回は RSL については説明しないから、興味のある人は Adobe Flex3 ヘルプ ランタイム共有ライブラリの使用でもご覧になって!

マニュアル上では、今回さくらが説明したようなライブラリのことはコンポーネントとか単に SWC ファイルって呼んでるみたいね。
なんか一見さんお断りの店みたいだわ。やな感じ!
どっちにしても検索するときは要注意ね!

さくら

0 Comments »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity