« Spark Project の Utils ライブラリの ASDoc | メイン | リンケージの設定と同時にクラスファイルを自動生成するJSFLコマンド »
2008年7月10日
[JSFL] JSFLでBitmapItemのリンケージ設定
現状 Flash CS3 では、 JSFLで画像(BitmapItem)のリンケージ設定で
「ActionScript に書き出し」の設定をしようとしても値が false のままで変更できません。
で、ちょっと無茶な方法ですが以下のようにスクリプトを変更します。

このように「ランタイム共有用に書き出し」が true に設定された状態で、
「ActionScript に書き出し」は設定されていないという、パネルを直接操作しても
再現出来ないようなおかしなことになってますが、このときのBitmapItem のプロパティを
出力すると以下のようになります。
この状態であれば、linkageClassName、linkageBaseClass 共にスクリプトで設定しなおすことが出来ます。
linkageURL はそのまま空でもパブリッシュは可能です。
このJSFLコマンドを実行した後、リンケージパネルを変更せずに
以下の ActionScript をタイムラインに書いてプレビューしてみると、
ちゃんと書き出されてることが確認できます。
linkageClassName は JFSL に追記して "image_jpg" に変更しています。
Bitmap に設定したクラス名とファイルを配置した SWF の URL が分かれば、
他のドキュメントソースファイルから「ランタイム共有用に読み込み」で読み込んでしまえる。
残念ながら linkageExportForRS を false にすると、結局 AS への書き出しも行われなくなってしまうので
今のところ対処方法はまだわかりません。無いのかもしれない。
FlashDevelop + FlexSDK とかで開発する上で、
SWF から [Embed] タグで画像を読み込む分には使えるかもしんない。
それをしないといけない状況があるかどうかなんですが。
「ActionScript に書き出し」の設定をしようとしても値が false のままで変更できません。
item.linkageExportForAS = true; alert(item.linkageExportForAS); // output : false
lib.setItemProperty('linkageExportForAS', true);
alert(item.linkageExportForAS); // output : false
プロパティを直接設定しても、 setItemProperty を使っても同じです。で、ちょっと無茶な方法ですが以下のようにスクリプトを変更します。
var item = fl.getDocumentDOM().library.getSelectedItems()[0]; if(item.itemType=="bitmap") item.linkageExportForRS = true; item.linkageExportForAS = true; item.linkageExportInFirstFrame = true;こうすると、ライブラリからマウス操作でリンケージパネルを開いたとき、以下のようになります。

このように「ランタイム共有用に書き出し」が true に設定された状態で、
「ActionScript に書き出し」は設定されていないという、パネルを直接操作しても
再現出来ないようなおかしなことになってますが、このときのBitmapItem のプロパティを
出力すると以下のようになります。
linkageExportForRS = true linkageExportForAS = undefined linkageExportInFirstFrame = true linkageClassName = image.jpg linkageBaseClass = allowSmoothing = false compressionType = photo quality = -1 useImportedJPEGQuality = true itemType = bitmap name = items/image.jpg linkageImportForRS = undefined linkageIdentifier = image.jpg linkageURL =linkageClassName(太字)のところを見ると、クラスが設定されています。
この状態であれば、linkageClassName、linkageBaseClass 共にスクリプトで設定しなおすことが出来ます。
linkageURL はそのまま空でもパブリッシュは可能です。
このJSFLコマンドを実行した後、リンケージパネルを変更せずに
以下の ActionScript をタイムラインに書いてプレビューしてみると、
ちゃんと書き出されてることが確認できます。
linkageClassName は JFSL に追記して "image_jpg" に変更しています。
import flash.display.Bitmap; addChild(new Bitmap(new image_jpg(1,1)));ただし、「ランタイム共有用に書き出し」を行ってしまうので、これを使うと
Bitmap に設定したクラス名とファイルを配置した SWF の URL が分かれば、
他のドキュメントソースファイルから「ランタイム共有用に読み込み」で読み込んでしまえる。
残念ながら linkageExportForRS を false にすると、結局 AS への書き出しも行われなくなってしまうので
今のところ対処方法はまだわかりません。無いのかもしれない。
FlashDevelop + FlexSDK とかで開発する上で、
SWF から [Embed] タグで画像を読み込む分には使えるかもしんない。
それをしないといけない状況があるかどうかなんですが。
トラックバック(0)
このブログ記事を参照しているブログ一覧: JSFLでBitmapItemのリンケージ設定
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/505

コメントする