第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
/:abc

 1つ上の階層にある別のムービークリップの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のいずれかの数値が代入されます