Home > ActionScript3.0 | Event | JSFL・JSF・JSX | Progression > 福岡てら子でCOREX

福岡てら子でCOREX

3月6日(土)に開催された『福岡てら子4』に参加してきました。

そこで、COREXについてお話させて頂いたんですが、かなりグダグダな説明になってしまったので、まとめてみました。

Q1.COREXって何?

JSFLをクラス化出来るようにしたものです。

新規ドキュメントを開いて、新規asレイヤーを作って、stop();を記述したいって場合…

//新規ドキュメントを開く
fl.createDocument();

var path = fl.getDocumentDOM().getTimeline();

//新たにasというレイヤーを作成する
path.addNewLayer("as","normal",true);

//一番上のレイヤーを選択しておく
path.currentLayer = 0;

//1フレーム目に、スクリプトを記述
path.layers[0].frames[0].actionScript = "stop();";

こんな感じのコードを書いて、ファイル名を●●.jsflみたいに保存→実行するかと思います。

ですがCOREXを使うと、以下のようにAS3のクラスファイルの書式と同じような感じで、JSFLのコードを書くことが出来ます。

package{

	public class Sample1 {

		public function Sample1() {

			//新規ドキュメントを開く
			fl.createDocument();

			//新たにasというレイヤーを作成する
			fl.getDocumentDOM().getTimeline().addNewLayer("as","normal",true);

			//一番上のレイヤーを選択しておく
			fl.getDocumentDOM().getTimeline().currentLayer = 0;

			//1フレーム目に、スクリプトを記述
			fl.getDocumentDOM().getTimeline().layers[0].frames[0]
			.actionScript = "stop();";

		}
	}
}

(試しにCOREXを使わずに)このスクリプトを、●●.jsflという拡張子で保存→実行してみると…

シンタックスエラーになってしまいます。

ですが、COREXを使うと、このスクリプトをJSFLとして実行してくれます。

Q2.COREXって、どこで使われているの?

Progressionのプロジェクトの書き出し、プロジェクトのアップデートなどに使われています。

Q3.COREXを使いたい場合、どうすればいいの?

COREXを使う場合、いくつかファイルが必要になります。

  1. COREX.jsflファイル
  2. 起動用のjsflファイル
  3. クラス化したjsflcファイル
  4. jslfccファイル

それぞれ詳しく見ていきます。

COREX.jsflファイル

このファイルは、Progressionをインストールすると、自動的に作成されるファイルです。

どこにあるかは、以下のコードを実行すると、分かります。

fl.trace(fl.configURI);

起動用のjsflファイル

これは自分で作らなければいけません。

作り方は、blog.progression.jp内のF-site資料の中のファイルを参照すると良いでしょう!

COREX.jsflファイル内にも起動コードの作り方が書かれているんですが、こちらは旧バージョンのコードになっています。

ですので、起動ファイルは、F-siteの資料にあるコードを使いましょう!

さて、起動コードのString.fromCharCode以下に、謎の数字が出てきます。

何が書かれているかは、以下のソースを記述すれば、理解出来ます。

var str:String = String.fromCharCode(67,79,82,69,88,32,105,115,32,110,111,116,32,105,110,
115,116,97,108,108,101,100,46);
trace(str);

これを実行してみると、String.fromCharCode以下の数字が、COREX is not installed.だということが分かります。

つまり起動コード内を要約すると、「fl.configURIで表示されるパスにCOREX.jsflがある場合は、JSFLを実行する。COREX.jsflが存在しない場合は、COREX is not installed.を表示して、処理を中断する」ということになります。

クラス化したjsflcファイル

これも自分で作らないといけません。

先の新規asレイヤーを作って~のサンプルコードを、Sample1.jsflcという拡張子で保存します。

jslfccファイル

これはCOREXを実行すると、自動的に作成されるキャッシュファイルみたいなものです。(あまり気にしなくて良いかと…)

jsflccファイルは、fl.configURI + COREXフォルダ内に作成されます。

jsflcファイルのタイムスタンプが異なる場合に、再コンパイルが行われるみたいです。

ここまでを軽くまとめると…

Progressionを既にインストールしている方は、起動用のJSFLファイルとクラス化したJSFLCファイルを作成すれば、COREXを使えるよ! ということになります。

先のサンプルでいうと、起動用のJSFLファイルはこんな感じになります。

$={u:fl.configURI+"COREX.jsfl",c:false,$:function(){alert(String.fromCharCode(67,79,82,69,88,32,105,115,32,110,111,116,32,
105,110,115,116,97,108,108,101,100,46))}};(eval(FLfile.read($.u))||$).$
( "Sample1", [] )

あとは、この起動ファイルを実行してあげればOKです。

F-siteの資料の起動用JSFLの説明

%SCRIPT%

起動用のJSFLの( “クラス化したファイル名”, [] )の第三引数に、%SCRIPT%と指定すると、実行中のスクリプトのパスを、出力パネルにfile:///URIの形式で表示してくれます。

%COREX%

第三引数に%COREX%を使うと、COREX.jsflのある場所を基準にパスの設定が可能になります。

COREX.jsflの基本的な使い方の箇所にも、説明が書かれています。

デバッグモード

第四引数のデバッグモードを有効にすると、パッケージ情報などを出力パネルに表示してくれます。

Q4.COREXを勉強するには?

以下のものを参考にすると良いと思います。

  • fl.configURI + COREX.jsflファイル
  • fl.configURI + Progression/JSFL以下のファイル
  • blog.progression.jp内のF-site資料
  • JSFLのオンラインマニュアル&PDF

Q5.クラス化出来るということは、継承も可能なの?

可能です。F-siteの資料内にあるサンプルでも、継承が使われています。

先の例でいうと、Sample1を継承したSample2を作ってみると…

●起動用のjsflファイル

$={u:fl.configURI+"COREX.jsfl",c:false,$:function(){alert(String.fromCharCode(67,79,82,69,88,32,105,115,32,110,111,116,32,
105,110,115,116,97,108,108,101,100,46))}};(eval(FLfile.read($.u))||$).$
( "Sample2", [] )

●クラス化したjsflcファイル

package {

	//Sample1をインポートする
	import Sample1;

	public class Sample2 extends Sample1 {

		//変数を定義(データ型の指定は不要)
		private var _path = fl.getDocumentDOM();

		public function Sample2() {

			//ライブラリにフォルダを追加
			_path.library.newFolder("hoge");

		}
	}
}

こんな感じにしてあげると、Sample1に新たな機能を付け加えることが可能になります。

気をつけることは何かある?

データ型の指定

COREX.jsflのコメント部分にも書かれていますが、変数や関数のデータ型の指定は不要です。

文字列内のコメント

文字列の中に、コメントを入れたいという場合、注意が必要です。

package{

	public class Sample1 {

		public function Sample1() {

			(略)

			//1フレーム目に、スクリプトを記述
			fl.getDocumentDOM().getTimeline().layers[0].frames[0]
			.actionScript = "stop();";

		}
	}
}

このコードを、以下のように変更して、実行してみると…

(略)

//1フレーム目に、スクリプトを記述
fl.getDocumentDOM().getTimeline().layers[0].frames[0].actionScript = '//stopをかけておく\n\nstop();';

これだと、JSFLが起動してくれません。

(略)

//1フレーム目に、スクリプトを記述
fl.getDocumentDOM().getTimeline().layers[0].frames[0].actionScript = '\/\/stopをかけておく\n\nstop();';

コメント部分は、エスケープ処理してあげる必要があります。

他にもいくつか…

(今回のサンプルでは出てきませんでしたが)他にもいくつか注意点があります。

詳しくは、COREX.jsflのコメント部分をご覧下さい。

サンプルをダウンロード

今回作成したサンプルを、ちょっと試してみたいという方は、こちらからDLしてください!

まとめ

こんな感じでCOREXを使うと、AS3っぽくJSFLを書くことが出来ます。

興味がある方は、一度、使われてみては如何でしょうか?

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://flabaka.com/blog/wp-trackback.php?p=2271
Listed below are links to weblogs that reference
福岡てら子でCOREX from flabaka

Home > ActionScript3.0 | Event | JSFL・JSF・JSX | Progression > 福岡てら子でCOREX

Search
Feeds
Meta

Return to page top