Home > Event | FlashDevelop | JSFL・JSF・JSX | Works > FlashDevelop勉強会のネタ・その2

FlashDevelop勉強会のネタ・その2


asファイルだと…

FlashDevelopでFlash IDE Projectを選択すると、コード(asファイル)を書いた後、「Ctrl + Enter」もしくは「F6」でFlashDevelop側からFlashIDEをコールして、パブリッシュすることが出来ます。

これ、便利ですよね!

では次に、プロジェクト内にflaファイルとJSFLファイル(test.jsfl)を作成。

そして、そのJSFLファイルに以下のスクリプトを書きます。

fl.trace("あいうえお");

そして、「Ctrl + Enter」もしくは「F6」を押してみると…

出力パネルにtraceされない…

JSFLの場合も、ショートカットを押すだけで、FlashIDEがコールされて、JSFLが実行されたら便利だなぁ…と。

勉強会のネタの二つ目が決定!

F6を押した場合

asファイルでF6を押した場合、どういう仕組みでFlash IDEがコールされて、パブリッシュされているかを調べてみましょう!

その設定は、MainMenu.xmlに定義されているんですが、その前にやっておくことが…

Program Files>FlashDevelopの設定ファイルを、LocalのFlashDevelopの方にコピーしておきましょう。(Localの方の設定ファイルをいろいろ弄りたいので…)

僕の環境はWindows7なので、C>Program Files(×86)>FlashDevelop>Settings>以下の5つのxmlファイルをコピーして、C>ユーザー名>AppData>Local>FlashDevelop>Settingsにコピーした後、MainMenu.xmlファイルをエディタで開きます。

ToolMenu

エディタによって差はあるかと思いますが、135行目に、<button label=”Label.TestMovieInFlash”~というものがあるかと思います。

そこにF6を押した際に実行されることが書かれています。

そこを見ると、F6を押す→Tools>flashide>testmovie.jsflが実行されていることが分かります。

これを真似してあげれば、何だか出来そうな感じがしたので、135行目を丸々一行コピーして、行の上にペースト。

そしてラベル名や、ショートカットキーを変更したり、実行するJSFLファイルを記述してあげます。

<button label="Label.TestJSFL" (略) $(UserAppDir)\Tools\flashide\runscript.jsfl$(Quote)" shortcut="F9" />
<button label="Label.TestMovieInFlash" (略) $(AppDir)\Tools\flashide\testmovie.jsfl$(Quote)" shortcut="F6" />

こんな感じでしょうか?

(ローカルの方の設定ファイルを有効にしたいので)TestJSFLの方の$(AppDir)という記述を、$(UserAppDir)に変更してあります。

次にTools>flashideフォルダにrunscript.jsflを作るんですが、Localの方にはToolsフォルダが存在していないので、C>Program Files(×86)>FlashDevelop>Toolsフォルダを丸ごとコピーして、Localの同じ箇所にペーストしておきます。

そのフォルダ内にrunscript.jsflというファイルを作ってあげて、fl.trace(”ほげほげ”);と記述して、FlashDevelopを立ち上げて、F9を押すと…

Flash IDEがコールされ、出力パネルに「ほげほげ」と表示されました!

わ~い!

応用編

runscript.jsflに、fl.trace()を直接記述するのではなく、こんな感じにしてあげると便利かと…

★例1

fl.runScript("file:///C|/JSFL/test.jsfl");

この場合だと、Cドライブ直下にJSFLというフォルダを作成し、その中のtest.jsflにパスを通しています。

FlashDevelopでこのファイルを開いて、編集して、F9を押してあげれば、Flash IDEがコールされて、test.jsflが実行されます。

他の使い方としては、プロジェクト内に作成したJSFLファイルに(上記のような感じで)パスを通しておけば、こちらもF9を押すだけでJSFLが実行されます。

★例2

var fileURL = fl.browseForFileURL("open", "ファイルを選択してください"); 
fl.runScript(fileURL);

例1ではファイルを直接指定していましたが、それが面倒だなぁ…って場合はこちら。

ここではダイアログボックスを開いて、どのJSFLファイルを実行するかを選択出来るようにしています。

気をつける点

その1

先の例2のJSFLを、UTF8のBomありで保存&実行した場合

UTF8でBomありの場合

先の例2のJSFLを、UTF8のBomなしで保存&実行した場合

UTF8でBomなしの場合

Bomなしで保存してしまうと、日本語が文字化けしてしまいます。

さらにBomなしだと、こんなことも起こります!

その2

勉強会の際、JSFLがきちんと動作しなかったんですが、その原因が分かりました。

文字コードが原因だったみたいです。

アラートを出すという単純なコードで検証してみました。

UTF8のBomあり
alert("ああああああ");

Bomありの場合だと、このJSFLファイルはきちんと実行されます。

UTF8のBomなし
alert("ああああああ");

全く同じコードでも、Bomなしの場合だと、このJSFLファイルは実行されませんでした。

そこで、勉強会の際に実行されなかったJSFLファイルを見てみると、文字コードがUTF8のBomなしに…

エディタの設定をきちんとしていなかったのが、原因だったみたいです!(Flash IDEやFlashDevelopを使った場合は、気にしなくてもいいのですが…)

教訓:JSFLを書いたら、UTF8のBomありで保存!

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://flabaka.com/blog/wp-trackback.php?p=2046
Listed below are links to weblogs that reference
FlashDevelop勉強会のネタ・その2 from flabaka

Home > Event | FlashDevelop | JSFL・JSF・JSX | Works > FlashDevelop勉強会のネタ・その2

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top