JSFLが凄い

一仕事終わった。
今回の仕事は納期が厳しいのに仕様が遅れててやばそう感じだったので、暇なうちに後々の作業が楽になる仕組みを作っておこうということで、JSFLという機能を使い始めた。

FlashのProfessional版に付いている機能で、JavaScriptで書いたプログラムによってはFlashの中身を操作出来る。
画像処理系のソフトにある、色々な機能の組み合わせで連続実行する機能と同じような物。
中身はメモ帳で書くだけ、実行はエクスプローラでダブルクリックするだけというのが手軽。
(特定のフォルダに置くことで通常のコマンドと同じように使用出来るらしいけど、そっちの方はやり方がよくわからんので、とりあえず書いてダブルクリックで全部済ませている)

JavaScriptにあまり良い印象がなく、どうせ大したことも出来ないだろうとたかをくくってたけど、これが実は凄いポテンシャルの持ち主だった。
ある意味予定通りというか、これがなかったら本当に納期に間に合わなかったかもしれない。

実際に作ったスクリプトの例
・そのレイヤにあるインスタンスを指定ピクセル分上下左右にずらす
・ライブラリに×××.pngという名前で登録したビットマップを、指定したフォルダの×××.pngと置き換える
・画像を置き換えると同時に、それまでの画像の大きさに合わせて拡縮させる
・選択したレイヤにあるインスタンス全てに指定した名前を付ける
・1〜10フレームを11〜20フレームにコピーし、xxxx_1のムービークリップをxxxx_2に置き換える
・使用画像が違うだけで同じ構造のムービークリップを5つ分自動生成する
・選択したレイヤにあるインスタンス全てのxとyを指定した倍率で変化させる
・on(press){〜}と書いてある箇所を全て探し出し、on(keyPress "5"){〜} on(keyPress ""){〜}に変更する
・画像をAフォルダから読み込んだ状態でswf作成、Bフォルダから読み込んだ状態で別名のswf保存

今の仕事はだいたいスマホ用とガラケー用と両方のデータを作らないといけないんだけど、解像度や画像サイズが変化して、その調整に時間がかかる。
タイムラインでアニメーションを付けたものが、画像の位置が変わると全部ズレてしまう。

動きをスクリプトで制御するとタイムライン上で付けた動きが全部無効化されるし、
全体をムービークリップ化して拡大縮小すると、個々の表示倍率をきっちり合わせられなくなる。
その点JSFLだと手できっちり指定したのと同じことだから、flaにもswfにも痕跡は残らず、それによって別に生じる問題というのが特にない。
FlashPlayerの新機能ではないからFlashLite1.1用のような古い構造のデータにも適用出来る。
自分以外が作成したデータを使いやすいように整えたりもできるし、諸々の事情に決定打になる機能。

手作業でやってたことはだいたい出来るから、同じ事を何度も繰り返す作業にはもちろん、1回しかやらないことでもスクリプトを書いた方が速いし、かつ正確に出来ることがある。
そして中身のデータ自体を修正するだけだから使った事による悪影響は何も出ない。
以前今のFlashはPro版買う意味がないと書いたような気がするけど、この機能だけで十分意味はあると思う。

ただ全てにおいて完璧というわけではなく、作ろうとしたけど結局作れなかったスクリプトもいくつかある。

1つは複数フレームの選択。
これが出来ると処理を大幅に高速化出来るけど、複数フレーム選択の有無を切り替えることが出来ず、現在どちらの状態かというのも取得できない。
手作業では出来るけど、操作のヒストリーを見ても×も出ない。
×が出た分はだいたい工夫次第でどうにか出来るけど、×が出ない物は操作された事自体をJSFLのシステムで認識してない感じがする。
事前に設定を変えておかないと上手く動かない、全然動かないわけじゃなく中途半端に動いてしまうのがまずいので、遅いけど確実な方法を選択することに。

もう1つは古いFlashへのコンバータ。
自分だけで使う分には必要ないけど、古いFlashしか持ってない人へのデータの受け渡しで問題になる。
いったんswfにしてから逆コンパイルという方法はあるけど、これだと名前情報などの作業用の情報が欠落する。
新しいFlashでしか使えない機能を使ってるわけじゃなく、ただ保存形式が違うだけだから、内部構造をいったんテキスト化して、古いFlashで実体化する仕組みが原理的には可能なはず。
…と思ったけど、シェイプデータの構造がよくわからない。一応アクセスは出来るみたいなんだけど、何をどうすれば保存と復元が出来るかという目処が立たずじまい。

他にもスクリプトで操作した内容をアンドゥ1回にまとめてほしいとか、色々気になるところはあるんだけど、使いはじめて約1ヶ月、JSFL無しでFlash扱う気は全くなくなった。
何故これがが広く知られてないのか、あるいは自分だけが知らなかったのか、とにかくもっと利用者が増えて、さらに改良が進んで欲しい機能。
posted by unaunagi at 2013/04/11 18:00 | Comment(0) | TrackBack(0) | デジタル>Flash | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。