ASをFlash Liteスクリプトに書き換える
スラッシュシンタクスの例を紹介
前回、Flash Lite 1.1端末が最も普及していると紹介しましたが、Flash Lite 1.1では、Flash 4をベースにしたスラッシュシンタクスを使用します(Flash Lite 2.xではActionScript 2.0を使用します)。
今回は、ActionScriptをスラッシュシンタクスへ書き換える例を紹介します。比べて並べてみるとちょっとした言い回しが違うだけで全く複雑ではありませんので、ぜひチャレンジしてみてください。
ActionScriptをスラッシュシンタクスにする
今回は図1を別ウィンドウで見ながら、順番に紹介します。
まずは、ムービークリップへのgotoAndplayの命令の方法です。MovieClipのフレームのヘッダーを移動する際に、MovieClip.gotoAndPlay(2)というように記述しますが、スラッシュシンタクスでは、MovieClipを制御するには、telltargetというコマンドを使用します。telltarget()は以下のように記述します。
tellTarget("MovieClip名"){
命令
}
スラッシュシンタクスでは、_rootは使用せず、以下のように置き換えます。thisは使用できません。
_root. → "/(スラッシュ)"
_parent. → "../(ドット、ドット、スラッシュ)"
では、以下のtelltarget()の例文を見てみましょう。スクリプトは書き方が違いますが、同じ動きをします(図1-1)。
次に変数の参照方法ですが、これはドットでも、スラッシュでも参照することができます。スラッシュシンタクスでの、参照方法は、":(コロン)"を使用します。ムービークリップ内にある変数を参照する例(ルートにあるMovieClip「hoge_mc」の変数「a」を変数「b」に代入する)は、図1-2になります。
文字列の連結について、Flash Lite 1.xの場合は、addを使います。文字列を追加する例は図1-3になります。
また、if文などで、文字列(ストリング型変数)の比較を行う場合には、eq、neを使います。文字列を比較する例文は図1-4になります(数値での比較は、通常の"=="で比較が可能)。
次に動的に変数を参照したい場合には、eval()を使用します(図1-5)。
次に、プロパティの値の取得はgetPropertyを、設定にはsetPropertyを使用します。図1-6の例文のルートにある「hoge_mc」のX座標を取得し、xposという変数に代入します。
プロパティはFlash 4と比較して、使用可能、不可のものがあります(図1-7)。
配列についてですが、Flash Lite1.xでは、オブジェクトという概念がないためにArrayオブジェクト、すなわち配列が使用できません。ですので、evalや文字列を使って疑似的に配列して扱います(図1-8)。
Math関数については、FlashPlayer内部でシュミレートされるために使用可能です。ただし、メモリの使用量が多くなりがちなために、ゲームやムービー内での使用避けた方がいいでしょう。計算済みのパラメータを用意する等工夫して使用を回避してください。
Flash Lite1.xでは、functionの代わりにcallという関数を使用します。これは、フレームに書いてあるスクリプトを任意のタイミングで実行できる関数です。例えば、10フレーム目に「foo」というフレーム名をつけ、以下のように記述します。
trace(a + 10)
そしてボタンから以下を実行すると、fooに記述したスクリプトが実行されて、出力パネルに「11」と表示されます。
on(press){
a = 1
call("foo")
}
このように比べてみると全然簡単なことがわかります。ぜひちょっとした待ち受け等からチャレンジしてみてはいかがでしょうか。
次回は、2008年12月に発売されたばかりのdocomoの新シリーズ「x-0xA」で採用されたFlash Lite 3.1の実機レビューについて紹介します。
【参考文献】
「Adobe - デベロッパーセンター : i モード用 Flash 開発講座」(http://www.adobe.com/jp/devnet/devices/articles/togoru_print.html)(アクセス:2008/12)
「Flash Lite 2.x ActionScript リファレンスガイド」(http://livedocs.adobe.com/flashlite/2_jp/main/)(アクセス:2008/11)