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

MovieClip のリンケージを設定するときは、ライブラリを右クリックしてチェックボックスをクリックして、識別子を命名して……という手順を踏む。リンケージを設定する MovieClip の数が少数なら、その都度手動で行えばよいが、大量の、しかも似たような種類の MovieClip 全てにリンケージの設定を行わなければならないシチュエーションがたまに訪れる。例えば、デザインされた 0 から 9 の数字であったり、ゲームのキャラクタなどがそう。

同じような繰り返しの作業をしないために、またミスを防ぐためにも、リンケージの設定を JSFL のコマンドに任せてしまうという手段がある。

まとめてリンケージの設定をする

var library = fl.getDocumentDOM().library;
var items = library.getSelectedItems();
for (var i = 0; i < items.length; i++) {
items[i].linkageExportForAS = true;
items[i].linkageExportInFirstFrame = false;
items[i].linkageIdentifier = "HOGE" + i;
}

上記のコマンドは、ライブラリ内の選択されたアイテムのリンケージ設定を行う。その際、Item オブジェクトの linkageExportInFirstFrame を false にしているので「最初のフレームに書き出し」はオフになる。また、識別子は「HOGE + 番号」となる。linkageIdentifier を指定しない場合は、ライブラリで設定したシンボル名がそのまま適用される。

注意すべきなのは、このコマンドを実行してもすぐにライブラリに結果が反映されないということ。任意のアイテムのプロパティを見るなどの操作を行うと、初めてライブラリがリフレッシュされる。謎だ。

まとめてリンケージの解除をする

リンケージを一括で解除するときにもコマンドが役立つ。以下は、ライブラリ内の全ての MovieClip のリンケージを解除するコマンド。

var library = fl.getDocumentDOM().library;
library.selectAll();
library.setItemProperty("linkageExportForAS", false);

この例では library オブジェクトの setItemProperty() メソッドを使って linkageExportForAS を false にしている。

コマンドは、リンケージの設定だけではなく、アイテムの種類や名前の変更、ライブラリの整頓 (頑張れば) にも使える。