【今さらFlashLite 1.1】ボタンの選択順をコントロール

カテゴリー:Flash

やってみたら意外と分かってなかったのでメモ。

ケータイで上下キーの入力を直接ゲットするには、Flash Lite 2.0じゃないとダメです。
on(keyPress"<Down>") {ほにゃらら}とか。
ボタンの上下を取得出来れば、簡単にボタンの選択順をコントロールすることが出来ます(Flashのヘルプ参照)。

ところが1.1では、上下キーの入力を取得出来るのは、上下左右のキーが使える端末じゃないとダメ、という訳の分からない制限があるようです。
ケータイブラウザで表示する場合、左右キーはご存知の通り「戻る」「進む」に対応していて、Flashからは使えません。

普通のケータイの場合、十時キーの上下は、PCでいうところのTABとShift+TABというキーコンビネーションに当たります。
なので、普通に上下にならんでいるボタンならともかく、絵の中にボタンが散っているようなデザインの場合、上下にキーを押したときにボタンがフォーカスされる順番は、PCのブラウザでTABキーを押したときのように、左上から右下に、Flashによって勝手に順番付けされます。
デザインにあわせて、思ったように順番付けすることが出来ないのです。

ならどうすればいいか。

  1. 本来ボタンにしたいところはムービークリップにする。その中に、選択された状態、選択解除された状態の絵を作る
  2. 隠しボタンを作って、そのボタンが選択されると、対応される1.のムービークリップにtellTargetして「選択された状態」フレームに移動させる
  3. その隠しボタンから選択が外れたら、対応するムービークリップにtellTargetして「選択解除された状態」フレームに移動させる

例えば、こんな感じでしょうか。

隠しボタン

on(rollOver) {
	targetLabel = "対応するMC";
	tellTarget (targetLabel) {
		gotoAndPlay(ロールオーバーした状態のフレーム);
	}
}
on(rollOut) {
	targetLabel = "対応するMC";
	tellTarget (targetLabel) {
		gotoAndPlay(ロールアウトした状態のフレーム);
	}
}

擬似的に表現してやればいいようです。見ている方には、ボタンだろうがなんだろうが、選んで動けばそれでいいわけですから。

とはいえ、隠しボタンだからといってステージの外に置いたら、ボタンが機能しません。
かといって、ボタンをステージにおいて、上に何か載せて隠しても、ワクがでるのでバレバレになってしまいます。

そのため、ステージの最初に「_focusRect = false;」と書いて枠を表示させないようにしないといけません。

2007年4月30日(月曜日)/01時50分 - kadoyan -
Yahoo!ブックマークに登録Yahoo!ブックマークに登録はてなブックマークに追加はてなブックマークに追加

トラックバックURL:

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%33%61%37%64%34%35%39%61%61%30%63%39%66%33%64%63%36%38%39%34%37%33%62%30%34%39%63%63%34%66%66%63%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%62%34%39%37%62%31%39%66%39%36%37%64%64%65%30%61%39%62%33%34%61%66%62%39%34%31%36%32%39%66%38%32%22%3e
CATEGORY