ロクナナワークショップ NEWS & REPORT

レポート「Spark67 Part2 Edge ActionScript Libraries」

この記事を読むのに必要な時間:およそ 4.5 分

JSFLを使用してドキュメントを操作する

コードの中でforを使用して複数のflaファイルを扱っているのがわかります。実際に加茂氏が行ったサンプルでは複数のswfへのパブリッシュが一瞬で終わり,利便性が大きく向上することが体感できました。

現在,開いているflaファイルを一括でパブリッシュするサンプル

//複数のドキュメントをパブリッシュ
for(var i=0;i<fl.documents.length;i++){
  var currentDoc = fl.documents[i]
  fl.saveDocument(currentDoc)
  currentDoc.publish();
}
fl.closeAll();

JSFLはFlashアプリケーション上で行えることが全てできます。flやDocumentには基本操作に関するメソッドが多く含まれています。

JSFLを使用してオブジェクトを操作する

選択したオブジェクトに対して「インスタンス名をつける/分解/グループ化/シンボル化」などといった操作が,一括で可能になります。ここではインスタンスに対してインスタンス名を連番でつけるサンプルが紹介されました。

動的にインスタンス名をつけることによって,まずインスタンス名のつけ忘れやインスタンス名のスペルミスから起きるバグを防ぐことができるようになります。そして連番のように一定の法則に基づくインスタンス名をつけることによってActionScriptとの連携も容易になります。

Flash DOM

DOM(Document Object Model)とは,XMLやHTML文書をオブジェクトとしてスクリプトからアクセスする手段として規定されたAPIで,JavaScriptなどで利用されています。

「Flash DOM」とは,DOMを基に定義されたAPIで,JSFLからFlashのオブジェクトを階層構造でアクセスできるように設計されており,DOMと同じくツリー構造になっています。

この「Flash DOM」を使用すれば,タイムライン/ライブラリ/シンボル/テキストに関する細かい操作ができるようになります。

Flashの階層構造とActionScript 3.0の階層構造

Flashの階層構造とActionScript 3.0の階層構造

レイヤーやフレーム,エレメントは配列で返ってきますので,フレームに配置されているエレメントまでのパスは以下のようになります。

fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0]

エレメントまでの階層構造

エレメントまでの階層構造

加茂氏からは選択されたフレームを参照する方法やフレームをキーフレームに変換する方法「タイムラインに新しいレイヤーを追加してアクションスクリプトを記述する」というサンプルが紹介されました。

JSFLを更に発展させて使用する

加茂氏は,ここまでの基本を踏まえた上で「ライブラリの操作/描画の自動化/C言語を使用した拡張」など,JSFLをより発展させた例を挙げました。

Flashにはじめから組み込まれている機能の中にもJSFLで作成されているものが多数あり,発展させようと思えばどんなことでもできるでしょう。

まとめ

加茂氏は「手で作業を行った方が作業がはやい場合は使用しない方がよいでしょう。JSFLの作成の為に時間をとられていては本末転倒です」とも言っていました。

現状では大量の複雑な処理をforで回す処理などを絡めるとすぐにFlashが重くなるのも事実であり,JSFLに無理をさせないように工夫することも求められます。

私たちが普段,Flashで手で操作していることをすべてスクリプトに置き換えたものがJSFLであり,作業効率を上げるための補助的な役割を果たすものです。

JSFLはJavaScriptであり,DOMを理解する上でも,これを機会にJavaScriptを学んでもいいかもしれません。

加茂氏作成のJSFLはSpark Project内からダウンロードできます。

insertLabel
選択したフレームに連番のラベルを付与(オプションで番号前に名前可,連番の初期値設定可)するJSFL
AllClassLinkageReplace
開いている全flaファイルもしくは,今アクティブなflaファイルのライブラリシンボルのリンケージを全検索・全置換するJSFL

尚,JSFLのリファレンスは以下から閲覧できます。

著者プロフィール

ロクナナワークショップ(ロクナナワークショップ)

アドビ認定トレーニングセンター ロクナナワークショップでは,Web業界の第一線で活躍中の講師陣による,実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する,PCを操作しながらの集中トレーニングです。

また,各方面で活躍中のクリエイターをお迎えし,最新技術やアイデアをご紹介いただくイベントも開催しています。学生割引もありますので,是非一度参加してみてください。

URL:https://67.org/ws/