• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数字キーでのフォーカス制御について(FlashLite1.1))

数字キーでのフォーカス制御について(FlashLite1.1)

このQ&Aのポイント
  • flash初心者でもわかる数字キーでのフォーカス制御についての解説です。
  • FlashLite1.1を使用して、簡単なボタン選択肢を操作する方法について説明します。
  • 選択肢を数字キーでフォーカス上下に移動させる方法や制約についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

騙しの手品を作れば良いでしょう。 たとえば4つのボタンが必要だとします。   [ ボタン1 ]   [ ボタン2 ]   [ ボタン3 ]   [ ボタン4 ] この4つのボタンはボタンとして作成はしません。 「4つ並んだボタンの絵」 として作成します。 ボタン用のムービークリップを用意して, 例えば, そのムービークリップ内のフレーム1には, [ ボタン1 ] が選択された状態の絵を用意します。  :*:[ ボタン1 ]:*:    [ ボタン2 ]    [ ボタン3 ]    [ ボタン4 ] 同じムービークリップ内のフレーム2には, [ ボタン2 ] が選択された状態の絵を用意します。    [ ボタン1 ]  :*:[ ボタン2 ]:*:    [ ボタン3 ]    [ ボタン4 ] 同じムービークリップ内のフレーム3には, [ ボタン3 ] が選択された状態の絵を用意します。    [ ボタン1 ]    [ ボタン2 ]  :*:[ ボタン3 ]:*:    [ ボタン4 ] 同じムービークリップ内のフレーム3には, [ ボタン4 ] が選択された状態の絵を用意します。    [ ボタン1 ]    [ ボタン2 ]    [ ボタン3 ]  :*:[ ボタン4 ]:*: そして,それとは別に, 同じムービークリップ内の各キーフレームに, 見えない(透明 とか ステージ外とか)のボタンを用意します【図↓】。 ムービークリップ内のフレーム1には次のように書いて ムービークリップ内の再生をフレーム1で停止させておきます。 --------------------------------- // このムービークリップ内の再生を停止 stop(); --------------------------------- ムービークリップ内のフレーム1の見えないボタンには次のように書きます。 --------------------------------- // キー2 を押したとき on (keyPress "2") { // このムービークリップ内を次のフレームに進めて停止 nextFrame(); } // キーEnter を押したとき(あくまでも例) on (keyPress "<Enter>") { // _root を tellTarget ("/") { // フレーム11 に進めて再生 gotoAndPlay(11); } } --------------------------------- ムービークリップ内のフレーム2の見えないボタンには次のように書きます。 --------------------------------- // キー2 を押したとき on (keyPress "2") { // このムービークリップ内を次のフレームに進めて停止 nextFrame(); } // キー8 を押したとき on (keyPress "8") { // このムービークリップ内を前のフレームに戻して停止 prevFrame(); } // キーEnter を押したとき(あくまでも例) on (keyPress "<Enter>") { // _root を tellTarget ("/") { // フレーム21 に進めて再生 gotoAndPlay(21); } } --------------------------------- ムービークリップ内のフレーム3の見えないボタンには次のように書きます。 --------------------------------- // キー2 を押したとき on (keyPress "2") { // このムービークリップ内を次のフレームに進めて停止 nextFrame(); } // キー8 を押したとき on (keyPress "8") { // このムービークリップ内を前のフレームに戻して停止 prevFrame(); } // キーEnter を押したとき(あくまでも例) on (keyPress "<Enter>") { // _root を tellTarget ("/") { // フレーム31 に進めて再生 gotoAndPlay(31); } } --------------------------------- ムービークリップ内のフレーム4の見えないボタンには次のように書きます。 --------------------------------- // キー8 を押したとき on (keyPress "8") { // このムービークリップ内を前のフレームに戻して停止 prevFrame(); } // キーEnter を押したとき(あくまでも例) on (keyPress "<Enter>") { // _root を tellTarget ("/") { // フレーム41 に進めて再生 gotoAndPlay(41); } } --------------------------------- > ASを利用して座標でコントロールするのが主流のようですが フォーカスの枠線の擬似移動 "だけ"を考えると座標でも簡単にできますが, そのときに押すボタンの動作などを考えると,複雑になると思いますよ。 擬似フォーカス枠の座標移動をさせる場合でも, 手品 を考えることには変わりないと思います。 どっちにしても, 見かけ(擬似フォーカス移動)と実体(見えないボタンの動作)は別に作成する必要があると思います。 もっと複雑(高度?)な例↓。 「携帯アイコンメニューのフォーカスのデフォルト位置を中央にしたい※初心者」 http://okwave.jp/qa4321185.html > 変動する選択肢数に対して,どのように座標をコントロールすれば この 「変動」 の意味がよくわかりません。 上で書いた方法は, FLA作成時点(SWFパブリッシュ前)だと, ボタンをいくつに変動させても問題はありません。 単純で極端な話, ボタンが 1000個 必要であれば ムービークリップ内を 1000フレーム にして同様のことをすれば良いわけです。 移動方向も縦に限らず自由自在です。 円形の順番でも対応できます。 擬似スクロールなどさせればボタンの数もいくらでも増やせます。 「変動」するとは, SWFパブリッシュ前ではなく,パブリッシュ後に 何かの要因によって,選択肢の数が動的に変わるのでしょうか? もしそうであれば, 全く別の手品を考えなければならないと思います。 しかしそれには 具体的状況がわからないと何とも答えようがありませんね。 具体的状況によって手品も変えるべきだと思います。

yashimaru
質問者

お礼

返答が遅くなり申し訳ございません! 丁寧な解説ありがとうございました。 おかげさまで解決する事ができました。

関連するQ&A