第2回:Flash Lite 1.1の基本的なスクリプト制御
第2回←教材はこれ!
- FL1.1はFLASH4ベース。if文や文字連結で若干の違いが。
- ちなみにWikipediaで調べた対応関係は以下。
- Flash Lite 1.0
- FLASH4ベース
- Flash Lite 2.0
- FLASH7ベース←FLASH MX?
- Flash Lite 3.0
- FLASH8ベース
- とりあえずPC版との違い一つ目は、タイムライン制御にはtellTarget()関数を利用してパス指定。
- いきなりめんどくさそう。
- しかもドットシンタックスではなくスラッシュシンタックスだと。パスの指定時には””も必要。
tellTarget("_root/mc") {
stop(); //Flash Lite 1.1ではtellTarget()関数を使用する
}
- stop()の時にも必ず必要なのかな?
・tellTarget("/")とtellTarget("_root")は同じ意味
・tellTarget("../")とtellTarget("_parent")は同じ意味
・レベルを指定する場合はtellTarget("_level0")などと記述
- あと変数指定もスラッシュシンタックスがあると。
変数を指定するには、ドットシンタックスを使用するか、ドット(.)とコロン(:)とを組み合わせたスラッシュシンタックスを使用します。
ルートにある「abc」という変数を絶対パスで指定します。
_root.abc
/:abc1つ上の階層にある別のムービークリップのabcという変数に相対パスで指定します。
_parent.mc1.car
../mc1/:car入れ子になっているムービークリップのabcという変数を絶対パスで指定します。
_root.mc1.mc2.car
/mc1/mc2/:car
- めんどい。これ1.1の話だけど2.0でもこうなのかなー。
- 2つめの違いは文字連結について。
- 文字連結「+」の代わりに「add」とか、文字列の比較に「==」の代わりに「eq」だとか。
- これは大丈夫。わかりやすい。
- 2ページ目、FL1.1でできないこと。
- enterFrameが使えない
- フレームをループさせてスクリプトを実行
- functionが使えない
- フレームラベルを利用したcall()関数を利用
- 配列Arrayが使えない
- eval()関数にて仮想的に処理
- 「えっー!」て感じでいろいろできない。
- ボタンイベントは以下の感じ
- press
- ボタンにフォーカスがありユーザーが決定キーを押した時
- release
- ボタンにフォーカスがありユーザーが決定キーをはなした時
- rollOver
- ボタンがフォーカスを受け取った時
- rollOut
- ボタンがフォーカスを失った時
ボタンに数字キーを対応させる場合には、「,」で区切って複数のイベントを指定できます。ボタンに数字キー[0]を対応させるには下記の通りです。
on(press, keyPress "0") {
//[ボタン処理]
}
- なるほど、このあたりは分かりやすいよ。
- 3ページ目。ケータイならではの機能としてリンク先には電話番号もサポート。
getURL("http://www.hogehoge.com/"); //Webサイトへリンク
getURL("mail@hogehoge.com"); //メールアドレスにリンク
getURL("tellto:09012345678"); //電話番号へリンク
- ただしgetURL()が処理できる条件はボタンアクションのonハンドラのみ。
- fscommand2()関数を利用すると端末の情報を取得できる。
- 日付の取得
fscommand2("GetDateYear"); //年
fscommand2("GetDateMonth"); //月
fscommand2("GetDateDay"); //日
- 曜日の取得
fscommand2("GetDateWeekday"); //曜日
- 時間の取得
fscommand2("GetTimeHours"); //時
fscommand2("GetTimeMinutes"); //分
fscommand2("GetTimeSeconds"); //秒
- 電波状況やバッテリー残量などの取得
fscommand2("GetSignalLevel"); //電波状況
fscommand2("GetBatteryLevel"); //バッテリー残量
fscommand2("GetPowerSource"); //電源状況
- バイブレータ機能の制御
fscommand2("StartVibrate", [オンの時間], [オフの時間], [繰り返し回数]);
fscommand2("StopVibrate");
- テキスト入力の初期入力モード
fscommand2("SetInputTextType", [ダイナミックテキストの名前(変数の名前)], [入力モード]);
- その他にMath()関数のサポートがないので小数点以下切り捨てはint()を使う。
- 乱数はrandom()関数を使う。
rNo = random(5); //0,1,2,3,4のいずれかの数値が代入されます
rNo = random(5) + 5; //5,6,7,8,9のいずれかの数値が代入されます