2011年4月23日土曜日

FlashIDEでSWCを作ってクラスライブラリとして使う

http://www.fukei-shashin.co.jp/1000messages/
このプロジェクトも大分ソースが大きくなってきたので、
コンパイルの高速化を見込んでFLAのアセットなどを部分的にSWCにておきたいと思った。

ちょっと解った事をまとめるとこんな感じ。

まず、SWCへはライブラリウィンドウから右クリックで書き出すだけ。
クラスの定義はこの場合「コンポーネント定義」は無効で、 (コンポーネントではないから)
シンボルのプロパティーから定義したクラスの内容が有効になる。

SWCのファイル名はコンパイルの何にも影響しないみたいなので何でも大丈夫みたい。
コンパイルするものからライブラリへのパスだけ通しておく。
今回はFlashCS5Proのパブリッシュ設定、Flash、Actionscript3.0設定からライブラリパスにファイルを直接追加した。

注意点はFLA内にそのままクラスのシンボルがある場合(つまりSWCを使わずに)、
そのシンボルの定義を、クラス(as)ファイルの定義内容が、
シンボルでの定義内容が生きたまま機能追加されるのだけど、
(例えばシンボル内のインスタンスはクラスの定義として生きたまま、
 クラスファイル内の定義でもインスタンスオブジェクトとして利用出来る。)
SWCに書き出したクラスと同じ名前でクラス(as)ファイルで同じ事をしようとすると、
「定義の重複」になってしまい定義出来ない。

よって同じ事をしようとする場合、まずSWCに書き出したクラスを継承して、
新しいクラスを定義する必要がある....

ということまで解った。


どうも、探してもこの辺りの事はAdobeのドキュメントには書いてないらしく、
ただ、Flashのプロの人たちは普通にやってるっぽいのだけど、関連する情報が見つからなくて試すしかなかった.....
他に情報があればどなたか。

0 件のコメント:

コメントを投稿