flash liteエンジニア向け

5
モバイル用Flash(FlashLite1.1) ActionScript1.0 実装方法 設置系Flashの構造

Upload: toshiharu-shirai

Post on 22-Jul-2015

759 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flash liteエンジニア向け

モバイル用Flash(FlashLite1.1)

ActionScript1.0実装方法

設置系Flashの構造

Page 2: Flash liteエンジニア向け

■ActionScript1.0での開発現在のPC向けのFlashの開発ではAS3.0が使用されますが、FlashLite1.1ではAS1.0での開発が必要になります。

■AS1.0の記述と実行

特定のタイムライン上のキーフレームに記述して、そのフレームが再生されると処理が実行されます。

プログラム実行の基本となるループ処理の記述方法

第1フレームに play();記述されたフレームに再生ヘッドが来ると、次のフレームに再生ヘッドが移ります。再生ヘッドを動かすという命令になります。

第2フレームにprevFrame();1つ前のフレームに再生ヘッドを戻す命令になります。戻した後に再生ヘッドが止まる命令なので、前述のplay();でもう一度動かすという処理になっています。

これで1と2のフレームで再生を繰り返すようになります。さらに第1フレームに実行したい処理を記述します。こうすると毎フレーム繰り返す処理を作ることが出来ます。Flashゲームだとこの中で当たり判定の処理などを行います。

Page 3: Flash liteエンジニア向け

■プログラムの処理順親となるMCから順に実行されます。同層にあるMCでは深度の低い方から実行されます。

■配列が使えない代わりにeval()を使います。eval(“name” add n) 文字列の連結にはaddを使用します。

文字列を指定して変数を動的に扱うことが出来るので、これを利用して連番の変数を作成するようにします。

■1フレーム内の処理行数が多くなると処理落ちfor文を500回ループなどすると勝手に次のフレームに再生ヘッドが移動したりしま

す。特にエラーなどは出ないので、知らないとハマる原因になります。どうしてもその処理が必要な場合にはfor分のループ回数を区切ってフレーム分けして処理するような実装にします。

■変数はすべてグローバル パスの記述方法ドットシンタックスとスラッシュシンタックス_rootにあるmc2内のmc3から_rootにあるmc1の変数val1を参照する場合相対パス _parent._parent.mc1.val1 ../../mc1:val1絶対パス _root.mc1.val1 /mc1/:val1

■functionは無い代わりにcall()を使います。フレームラベルを付けたフレームにその処理を書いておくと、call(“ラベル名”)で実

行することが出来ます。戻り値や引数はありませんので、グローバル変数を適宜使用します。

Page 4: Flash liteエンジニア向け

■キー操作の実装

ボタンは画面内に配置されている必要があるので透明なボタンを作成して利用します。ボタンアクションに次のような記述をします。on( keyPress “<Enter>” ) 決定キー{

call( “fnc:pE” );}

キーが押された時の処理は常にcallで実装するのが実用的だと思います。0〜9、決定キー、上下キーが使用可能です。ソフトキーや他のキーは取得出来ません。

■上下キー上か下かの区別は無く、ボタンのフォーカスを動かすことしか出来ません。なのでボタンを3つ並べてフォーカス移動を使ってどちらが押されたかを判別します。

■スクリプトを書ける場所ボタンアクション内ではon()ハンドラ内にその処理内容を記述します。タイムライン上ではすべてのキーフレームに記述可能ですが、1つのMC内に1つのAS用レイヤーを作成し、そこにまとめて書くのがベターです。FlashLite1.1ではムービークリップアクションは使えません。

on( keyPress“5” ) 5キー{

call( “fnc:pE” );}

Page 5: Flash liteエンジニア向け

■バイナリデータ置換による変数渡しまずFlashLiteでは起動時にURL変数を受け取ることが出来ません。起動後に通信して

変数を受け取ることは可能ですが、通信するにはキー操作が必要なため手間がかかります。なのでswfファイル内の特定の文字列を置換して変数の内容を置き換えるという手法を使います。現状は先にswf内に程良い長さの文字列を設定した変数を用意していますが、PHP側

で任意の変数を追加してファイルサイズの部分を書き換えるという方法で任意の長さを持った変数を追加することも可能です。

■設置Flashの構造についてturbineでは_rootに対してMCを追加していくということを行っています。ここで必要になるのがMC名の設定と深度の設定です。MC名は設定しなければ、instance**という名前になり、深度は設定しなければ順々に重なっていくようです。

その他にユーザー操作や表示にたいして判定に必要な変数が埋め込まれている状態になります。基本は/param:floor_mapのマップデータにたいして置ける場所を検索して移動するという処理を行ってから、設置するの決定キーが押下されるとgetURL()で/param:target_urlに対して座標の情報を付けて遷移するようになっています。撤去の場合には、あらかじめ埋め込まれているその店内にあるアイテムのMCすべてに対してフォーカス処理を行い、選択されたアイテムのIDを送るようになっています。