Animate/Flashで使えるJSFLをHaxeで書く
これは、FLASHer その2 Advent Calendar 2016 の記事です。
JSFLとは
JSFLとは、Animate CC(または、Flash Pro)のJavaScript APIをつかってツール上の様々な操作をできるスクリプトです。
単純作業の自動化などに使えます。
JSFLの事例
JSFLを使うと例えば以下のようなことができます。
現在開いているドキュメントのディレクトリを開く.jsfl
空フォルダを削除する君.jsfl
ビットマップからナインスライスMCを生成.jsfl
Haxeとは
HaxeはActionScript3に似た言語で、swf、ActionScript3、JavaScript、C#、Java、C++、Python、PHP、Luaという複数のプラットフォームに出力可能な言語です。
詳しくは、https://ja.wikipedia.org/wiki/Haxe を見てください。
Haxe/JSFLの第一歩
Haxeをインストールしたら、以下のコマンドを入力して、haxe-jsflをインストールします。
haxelib git haxe-jsfl https://github.com/tmskst/haxe-jsfl.git
haxe-jsfl は、JSFLのAPIの型情報などをまとめたライブラリです。
次に、Haxeのコンパイル用にbuild.hxml
を用意します。
# JavaScriptターゲットで出力
-js bin/output.jsfl
# 型情報のライブラリを指定
-lib haxe-jsfl:git
# Haxeのソースコードを置くディレクトリの指定
-cp src
# メインクラスの指定
-main Main
そして、以下のようなHaxeファイルを準備します
class Main {
static function main() {
trace("Hello JSFL");
}
}
これを以下のコマンドでコンパイルします。
haxe build.hxml
これで、生成されたoutput.jsfl
をFlashにドラッグ&ドロップすると、Hello JSFL
と表示されるはずです。
Haxeで書くことのメリット
入力補完が効く
JSFLの仕様は http://help.adobe.com/ja_JP/flash/cs/extend/flash_extending_reference.pdf に書かれていますが、いちいちこれを読み返しながら作業するのは面倒です。
Haxeで書けば、これらの関数についての補完が効くのでドキュメントを見返す関数も少なくて済みます。
JSONの読み書きが楽
Haxeの標準ライブラリでは、Haxeで実装されているJSONパーサ/プリンタと、ブラウザ側のJSON APIの両方が利用可能です。
JSFLからはブラウザが提供しるJSON APIは使えませんが、Haxeではコンパイル時に-D haxeJSON
のオプションを指定することで、Haxeのコードで使用されているJSONパーサ/プリンタが使用されるようになります。
これを使うことで、簡単にJSFLでJSONをあつかうことができます。
簡単なActionScriptならパースできる
JSFLではflaファイル内で使用しているActionScriptにアクセス可能ですが、JavaScriptのコードでここから情報を読み取ろうとすると大変です。
Haxeには、Haxeのコードをパースするライブラリがいくつかあります。
Haxeの文法とActionScript3の文法はよく似ていますから、HaxeとActionScript3で差が出ないようなコードであればこれらのライブラリでパースすることができます。
Haxeのプログラムとの連携が楽
JSONとして出力する場合、そのスキーマ情報をtypedef として定義しておくことで出力側と読み込み側で型情報を共有してあつかえます。
また、Haxeの独自シリアライザを使うことで、Haxe/JSFLで作ったhaxeのオブジェクトをそのまま文字列化して、他のプログラムに持ち運ぶことができます。
HaxeでJSFLの事例
選択したライブラリ内アイテムを一括で複製する
LibraryItemDuplication
各ビットマップデータに対し一括で、 画質を Lossless(PNG/GIF)化し スムージングを OFF にする JSFL
BitmapSmoothCut
Flash CC 内構造を Haxe クラスに出力する
Flash-To-Haxe-Converter
以上です。
Author And Source
この問題について(Animate/Flashで使えるJSFLをHaxeで書く), 我々は、より多くの情報をここで見つけました https://qiita.com/shohei909/items/bc19524867a20c8a886e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .