« JSFLでBitmapItemのリンケージ設定 | メイン | NetStreamのonMetaDataイベント »

2008年7月11日

[JSFL] リンケージの設定と同時にクラスファイルを自動生成するJSFLコマンド

リンケージの設定と同時にクラスファイルを自動生成する
Flash CS3 用の JSFLコマンドをアップしました。

LinkageSettings.mxp

Flashのメニューから「コマンド」>「LinkageSettings」で使用できます。
このコマンドを呼び出す際は、以下の条件が必要です。

  • flaファイルが保存されたもの。
    (新規作成で開いた状態で未保存の場合は使用できません。)
  • ステージ上のシンボル、もしくはライブラリ内のシンボルを1つ以上選択した状態であること。
  • ドキュメントのActionScriptのバージョンが3であること。

まだベータ版ってことで、Macで検証できてないのと、 AS2 には使用できません。
実行すると以下のダイアログが表示されます。



特徴
  • ステージ上、もしくはライブラリ内で選択中の複数のシンボルをまとめてリンケージ設定可能
  • リンケージの設定対象は MovieClip, Bitmap, Font, Sound, Button の5種類です。
  • リンケージ設定時にクラスファイルが存在しない場合、自動で生成することができます。
  • クラスファイルの自動生成時に特定のイベントを追加しておくことができます。
  • クラスファイルの自動生成時にEmbedタグを設定しておくことができます。
  • 複数選択時、クラス名に*を使用することで、各シンボル名と同名のクラスを作成します。
    例)classes.display.*
  • 複数選択時、基本クラス名に*を使用することで、
    各アイテムのデフォルトで割り当てられるクラスを基本クラスに設定することができます。
  • 対象がムービークリップの場合、内包するインスタンス名を変数宣言しておくことができます。
  • 対象がムービークリップの場合、タイムライン上のスクリプトを調べて、クラス内に addFrameScript として設定することができます。
  • 書き出すクラスファイルのテンプレートは単独のファイルとなっているため、比較的容易に編集が可能です。
    "Commands/seyself/templates/as3_class.tmpl" がテンプレートファイルです。
    テンプレートファイル内で[XXXX]と書かれている箇所が、
    それぞれ置き換えられる場所になっているので、編集の際はご注意ください。

注意事項
  • まだ検証が十分ではありませんので、ご使用には注意してください。
    特に複数のシンボルをまとめてリンケージ設定する際に、クラス生成も同時に行うと
    予期せぬ結果になる可能性があります。
  • クラスパスは相対パスで記述してください
  • Embedタグを追加した際、自動的にswfファイルへの参照が記述されますが、
    この機能はflaファイルの位置を指しています。
    flash側でパプリッシュ先を、他のディレクトリに指定を変更した場合でも、
    flaファイルの位置を元に書き込まれます。

困ってること
  • Flash側でSWFのパブリッシュ先を変更した場合の、書き出し先の取得方法が分かりません。
  • XULがよく分からず、表示パネルの外枠がやたらデカくて困ってます。
  • Mac にて検証する環境がないため、ディレクトリの指定等がまったく分かりません。

もしどなたか Mac 環境で検証してくれるって方がおられましたら
是非以下の JSFL ファイル(DirectoryTest.jsfl)を使用して、
出力された結果を教えていただけませんでしょうか。

directory_access_test.jsfl

ちなみに「 Windows XP SP2 / Flash CS3 」での出力結果は以下のようになりました。 ご参考まで。
//==== Directory Access Test ====

■fl.configURI =
file:///C|/Documents%20and%20Settings/wada/Local%20Settings/Application%20Data/Adobe/Flash%20CS3/ja/Configuration/

■document.path =
D:\wada\00_works\2008_latter\20080709_test_commands\flash\20080709\index.fla

■fl.browseForFolderURL() =
file:///C|/flex_sdk_3/bin

■fl.browseForFileURL() =
file:///C|/Program%20Files/Adobe/Adobe%20Flash%20CS3/Flash.exe

//==== Test Complete ====

以後、ゆっくりとですが調整していく予定です。

トラックバック(0)

このブログ記事を参照しているブログ一覧: リンケージの設定と同時にクラスファイルを自動生成するJSFLコマンド

このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/506

コメントする


画像の中に見える文字を入力してください。

しばらく時間が経過すると、システム内部と表示されている文字内容に食い違いが発生するようなので、
投稿する前にページをリロードすることをお勧めします。
リロードしてもフォームの内容は維持されます。