Flashlite1.1で上下キーを使う

4月 15th, 2009

Flashlite1.1では携帯の上下キーは使えるけれどもボタンアクションには割り当てられない。
つまり

on(keyPress”<up>”){
 命令;
}

やっちゃうと「割り当てられていません」とかエラーが出ちゃうわけ。
でも、ボタンにはフォーカス当たってつかえるこたぁ使えるんだ。

これをちゃんと使えるようにするためには、keyPressじゃなくてrollOverを使う。

設置方法としてはボタンを3個(もしくは2個)つくり、透明にしてフィールド内に縦設置する。(フィールド外だったら認識しなかった気がする・・・)
設置した3つのボタンのスクリプトは下記の通り。

■一番上のボタン
on(rollOver){
 if (/:id == 3) {
  /:shita = true;
 }else if(/:id == 0){
  /:shita = true;
 } else {
  /:shita = false;
 };
 /:id=1;
call(命令文が記述されているフレーム);
}
 
■真ん中のボタン
on(rollOver){
 if (/:id == 1) {
  /:shita = true;
 } else {
  /:shita = false;
 };
 /:id=2;
call(命令文が記述されているフレーム);
}

■下のボタン
on(rollOver){
 if (/:id == 2) {
  /:shita = true;
 } else {
  /:shita = false;
 };
 /:id=3;
call(命令文が記述されているフレーム);
}

ルートのスクリプトフレームに/:id=0;と/:shita=trueを設定しておくこと。
これで、最初id=0からはじまり、下キーを押すと一番上のボタンにフォーカスがあたりidが1になり/:shitaというフラグがtrueとなる。
逆に上キーを押すと一番下のボタンにフォーカスがあたりidが3、shitaフラグがfalseとなる。
あとは、アクションによって行動する命令式を空のフレームにラベルを付けて記述し、ボタンの最後にcallでそれを呼び出せばOK。

注意点
1.同じフレーム内にテキスト入力ボックスを配置するとそっちにも反応するからうまくいかない。
2.ボタンフォーカスの「枠」がでるので最初のスクリプトフレームに「_focusrect=false;」を記述すると良いでしょう。
3.Flashlite2.0ならコレを使わなくてもいいはず。

[`evernote` not found]
このエントリーをはてなブックマークに追加

カテゴリー: Flash Lite

Leave a comment

Leave a comment

Feed

http://www.browncrown.net/blog / Flashlite1.1で上下キーを使う