JSFL

ステージに配置された 2 つの要素の位置を入れ替える JSFL

ステージに配置された 2 つの要素の位置を入れ替える JSFL を書いた。 var selection = fl.getDocumentDOM().selection; if (selection.length === 2) { var temp = {}; temp.x = selection[0].x; temp.y = selection[0].y; selection[0].x = selection[1].x…

リンケージ設定を入れ替える JSFL

ライブラリ内の 2 つのアイテムのリンケージ設定を入れ替える JSFL を書いた。 //SwapLinkageSettings var selectedItems = fl.getDocumentDOM().library.getSelectedItems(); var itemA = selectedItems[0]; var itemB = selectedItems[1]; var source; var…

JSFL ファイルを UTF-8 で書くときは BOM を付けた方がいい

JSFL を UTF-8 で書くときは BOM を付けた方がいい。 //取 fl.trace(1); BOM なし UTF-8 だと、このコードが動かなかった (Windows/Flash CS3)。 Vim で BOM を付けるには :se fenc=utf-8 bomb とする。

キーフレーム毎に同じインスタンス名を付ける JSFL

同一レイヤのシンボルに同じ名前を付ける JSFL を書いた。トゥイーンアニメーションしている MovieClip があるとき、キーフレーム毎に名前を付けるのが面倒なので。 /** * 同一レイヤー上のオブジェクトに同じ名前を付ける */ var instanceName = prompt("se…

"ライブラリの中でASが書いてあるやつを調べる" を改良した

「ライブラリの中でASが書いてあるやつを調べる」を勝手に改良して、ルートのタイムライン (現在開いているタイムライン) の ActionScript も出力するようにした。 また、出力された ActionScript に余計な空行が入っていた (Windows の Flash CS3) のを削除…

パブリッシュ時にブラウザをリロードする

Vim で .as ファイルを保存時に、Flash をパブリッシュしつつブラウザをリロードするようにしてみた。元ネタは ||_koba_|| さんの発言。ちなみに Windows 限定。 手順 JSFL FileSystem API を入れる ブラウザをリロードする JScript を書く JScript を実行す…

タイムラインを Vim のキーバインドで移動する

タイムラインを Vim (Vi) のキーバインドで移動できるように設定した。Ctrl/Cmd-Shift-HJKL で選択状態のフレームが移動する。どのキーを押しているかが伝わらないデモ。 キーそれぞれに別々の JSFL コマンドを割り当てるのが面倒。関数呼び出しができたら楽…

インスタンス名を入力するプロンプトを出すコマンド

選択されたインスタンスに名前をつけるためのプロンプトを出す JSFL を書いた。と言うのも、マウスでインスタンスを選択してから、プロパティタブのインスタンス名のテキスト入力にフォーカスするキーボードショートカットがわからなかったため。 ソースコー…

ライブラリを Unix コマンド風に操作するエクステンション

ライブラリのアイテムを Unix コマンド風に操作するエクステンションを作った。 デモとソースコード。 実装した機能は ls mv cp rm clear ファイル名のタブ補完 だけ。ディレクトリ構造を保持していないので cd は使えない。パーサらしきものは、スペースで …

複数のレイヤーをコピーしたいが、できない

Flash は、複数のレイヤーを一度にコピーすることができない。 例えば、_root に作ってしまった複数のレイヤー、複数のフレームに渡るアニメーションを、新規作成した MovieClip にコピーしたいというニーズが多々あるのに、できない。 いや、できないという…

ストレスフリーでライブラリのシンボルを編集モードにしたい

可能な限りライブラリパネルを触らず、頻繁に編集するシンボルにアクセスする方法を模索している。思いついたアイデアは以下の 2 点。 同一の .fla ファイルを複数ウィンドウで開いておく シンボルのブックマークを作る 同一の .fla ファイルを複数ウィンド…

Vim から JSFL を実行する

前エントリの派生で、Vim で編集中の JSFL ファイルを Ctrl-Enter で実行できるようにした。コマンドのテストが楽になって嬉しい。 Ctrl-Enter で JSFL を実行できるようにする JSFL の filetype を設定する。これは JavaScript のものをコピペでよい。 $VIM…

Vim から Flash のパブリッシュを実行する

Vim で ActionScript を編集中に、Ctrl-Enter を押すとパブリッシュされるようにした。Alt-Tab で Flash IDE に移動しなくて済む。 Ctrl-Enter でパブリッシュできるようにする filetype を設定済みなことが前提条件で、 $VIM/runtime/ftplugin/actionscript…

MXP ファイルの作り方

このブログでもこれまでいくつかの JSFL を公開してきたが、一般的に (?) は MXP 形式での配布が主流らしい。 ということで、MXP の作り方を調べた。 MXP ファイルの作り方 (JSFL コマンド) JSFL ファイルを作成する。 MXI ファイルを作成する。MXI ファイル…

コレクションの開始値

コレクションの開始値が 0 であったり 1 であったりと悩ましい。何が言いたいかというと、 hoge_mc.gotoAndStop(0); と書いていて、1 時間無駄にして悔しい (フレームは 1 始まり)。MovieClip のフレーム移動は、ラベルを使うのが鉄則なのだが、手を抜くとこ…

選択されたインスタンスに、ライブラリ内と同じ名前を付ける JSFL

ステージ上で選択されたインスタンスに、ライブラリ内と同じ名前を付ける JSFL を書いた。 /** * 選択されたインスタンスにライブラリ内と同じ名前を付ける */ var selectedItems = fl.getDocumentDOM().selection; for (var i = 0; i < selectedItems.lengt…

レイヤーを追加して this.stop(); を書く JSFL

デザイナから渡された .fla ファイルに「ラベルはついているが、stop() が書かれていない MovieClip」が大量にあった。これらの MovieClip をステージに配置した途端、アニメーションのループが始まってしまう。なんとしても、stop() を入れたい。 そこで、…

ビットマップに対してはリンケージの設定を自動化できない

仕事で、ライブラリに存在する複数のビットマップのリンケージ設定をすることになった。jslf で一括処理すればよいと高をくくっていたが、ビットマップに対しては linkageExportForAS にアクセスできない現象に遭遇した。Google でリサーチしてもそれらしき…

複数の FLA ファイルを一括でパブリッシュする

複数の FLA ファイルを一括でパブリッシュする JSFL コマンド。共通で使用しているクラスを書き換えた時や、納品時の最終パブリッシュに使用すると便利だ。 同一ディレクトリ内の FLA ファイルをパブリッシュする //ディレクトリを指定 var dir = "file:///c…

リンケージの設定を自動化する

MovieClip のリンケージを設定するときは、ライブラリを右クリックしてチェックボックスをクリックして、識別子を命名して……という手順を踏む。リンケージを設定する MovieClip の数が少数なら、その都度手動で行えばよいが、大量の、しかも似たような種類の…