- ベストアンサー
ActionScriptに関しての質問
ActionScriptに関しての質問です。 ボタンがありまして、Enterキーをクリックするとクリックする一瞬ボタンの色が緑から赤に変化します。 同時に次のページへ移動する仕組みです。 困ったこと:Enterキーをクリックしたときのボタン色の変化。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
なぜかしばらく非表示でした.../(-_-)ヽ #1です。 #1の補足で書かれていらっしゃるようなことはボタンではできません。 できませんが,なるべく元を変えずに,近いことをするには, まずボタンにインスタンス名を付けます。 たとえば「newpage_btn」というインスタンス名を付けます。 そしてスクリプトを次のようにします↓。 ------------------------- on (release) { _global.soundBtn.start(); _root.gotoAndStop("newpage"); } on (keyPress "<Enter>") { _global.soundBtn.start(); // ↓ボタンnewpage_btnにフォーカスを与える Selection.setFocus("newpage_btn"); _root.gotoAndStop("newpage"); } ------------------------- しかし,↑こういうことではありませんよね(多分)? #2の方が書かれていらっしゃるように, ムービークリップ(MC)でボタンを自作する必要があると思います。 仮にムービークリップ内に置く画像の, フレーム1 の色を緑 フレーム2 の色を赤 フレーム3 の色を青 とします(何でも良いですが)。 そのMC"自体"に書くスクリプト例↓。 ------------------------- // このMCが表示された時 onClipEvent (load) { // このMC内の再生を停止 this.stop(); } // 何かキーが押された時 onClipEvent (keyDown) { // もしそのキーがEnterであれば if (Key.getCode() == 13) { // このMC内をフレーム3で停止 this.gotoAndStop(3); } } // 何かキーが放された時 onClipEvent (keyUp) { // このMC内をフレーム1で停止 this.gotoAndStop(1); // もしそのキーがEnterであれば if (Key.getCode() == 13) { _global.soundBtn.start(); _root.gotoAndStop("newpage"); } } // このMCにロールオーバーした時 on (rollOver) { // このMC内をフレーム2で停止 this.gotoAndStop(2); } // このMCを外で放したりロールアウトした時 on (releaseOutside, rollOut) { // このMC内をフレーム1で停止 this.gotoAndStop(1); } // このMCを押した時 on (press) { // このMC内をフレーム3で停止 this.gotoAndStop(3); } // このMCをクリックした時 on (release) { // このMC内をフレーム1で停止 this.gotoAndStop(1); _global.soundBtn.start(); _root.gotoAndStop("newpage"); } ------------------------- ※ Flash MX (Flash Player 6) 以上 ActionScript 1.0 (設定は 2.0 でもOK) なお,次のページにあるように, MC内に「_up」「_over」「_down」というフレームラベルを付けておくとスクリプトはもっと簡略化できます↓。 「ムービークリップのボタン化」 http://homepage3.nifty.com/ginga-b/MX/btnmc.html スクリプトは簡略化はできますが, 結局考える方向性はほとんど同じです(むしろややこしいかも)。
その他の回答 (2)
- joy_28
- ベストアンサー率84% (45/53)
karisuma79さん、 上のBlurFiltanさんのことですから、丁寧で、的確な回答をされていると思いますが、以下のようにも、出来ます。簡単なAS2.0で記載してます。参考までに。 前提: 1)ENTERキークリックというのは、PCのENTERキーをクリックとは言わないので、PCのENTERキーを押すという意味と解釈しました。 2)2フレームから構成されるMovieClipで、ボタンを作成し、シンボル編集画面内で、第一フレームの色を緑、第二フレームの色を、赤とし、第一フレームのscriptレイヤーに、this.stop(); と記載しておきます。シーンに配置し、インスタンス名を、btnとします。 3)シーンの第一フレームのscriptレイヤーに、以下を記載します。 //ここから this.onEnterFrame = function():Void { if (Key.isDown(Key.ENTER)) { btn.nextFrame();//btnの第二フレームに移動して、赤表示 //次のページの意味を、別のURLと解釈しました。 getURL("http://google.com/", "_blank"); //nextFrame();SWF内の第二フレームへの移動なら、こうします。 this.onEnterFrame = null;//不要なので、無効とする } else { trace("ENTERキープレス待ち");//待ち状態 } }; //ここまで
お礼
joy_28様お礼が遅くなりましてすみません。 良い参考になりました。ありがとうございました。
- BlurFiltan
- ベストアンサー率91% (1611/1754)
いったい何が疑問(困ったこと)かわかりませんが......。 普通に色が変わるボタンを作れば良いだけではないでしょうか? 「はじめてのflash 《#3》 ボタンを作ろう(1)」 http://mag.digicon6.com/flash/2009/06/flash-flash-tip.html 「ボタンを理解しよう!」 http://1art.jp/flash/le/lesson8/lesson8.htm 「ボタンの作り方(オレンジのサンプルFLASH講座)」 http://orange.2-d.jp/flash/kiso/07.html 「Flashでボタンを作ろう!(作成編)|Flash初心者講座」 http://ameblo.jp/draftclub/entry-10009803868.html ---------- 何かの理由があって ボタン作成ではなくActionScriptでそういう動作をさせたいのでしょうか? それでしたらそれで, お持ちの Flash 作成ソフトのバージョン(Flash 5 や Flash MX や Flash CS4 や…) またActionScriptのバージョン(ActionScript1.0 や 2.0 や 3.0 や…), また「具体的にどうしたいのか(ActionScriptでしなければならない理由など)」を書かなければ, 何が疑問で何を解決したいのかわかりませんよ。。。
補足
BlurFiltan様 回答ありがとうございます。 説明不足ですみません、、 Flash 作成ソフトは、 Flash CS4です。 ActionScriptのバージョンは、 2.0です。 現状は、ボタンは作ってありまして、ボタンにマウスを乗せるとボタンの色が変化し、クリックすると次のページへ移動します。 やりたいことは、マウスだけではなく、ボタンをキーボートのEnterキーと連動したいです。Enterキーを押すとボタンの色か変わる同時に次のページに移動ということです、、、 今のところ、下記のActionScriptを利用して、Enterキーを押すと次のページへジャンプすることまでは来ました。 ただ、問題点はボタンの色が変わらないことです。これを解決したいです、、、 on(release){ _global.soundBtn.start(); _root.gotoAndStop("newpage"); } on(keyPress "<Enter>") { _global.soundBtn.start(); _root.gotoAndStop("newpage"); } よろしくお願いします。
お礼
BlurFiltan様 お礼言うのが遅くなりまして、すみません。 詳細な回答、本当に助かりました。 ありがとうございました。