• 締切済み

Flashでボタンをキーボードで操作できません。

当方flash8を使用しています。 ttp://sarasou.hp.infoseek.co.jp/kiwamibutton.html このサイトのような操作をしたいのですが //サウンド・クラスのインスタンスを生成 var se001:Sound = new Sound(); //ボタンを押すたびに音素材を再生する playButton1.on (keyPress "z") { se001.attachSound("dog"); se001.start(); }; 「演算子の後にはフィールド名が必要です。」というエラーが出ます。 どのようにすればつくれるようになるでしょうか。

みんなの回答

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

書かれていらっしゃるものは ActionScriptモドキ であって ActionScript ではありませんから 残念ながら動作しません。 モドキ を ActionScript にするには, onハンドラ と イベントハンドラメソッド 辺りを調べてみると良いと思います。 http://homepage3.nifty.com/ginga-b/MX/mc_eventhandler.html その辺からの事項を延長発展させて書いていると書き切れませんから, 結論である一応の方法例スクリプトを書きます。 //サウンド・クラスのインスタンスを生成 var se001:Sound = new Sound(); // キーを監視するためのオブジェクト・クラスのインスタンスを生成 var myListener:Object = new Object(); // 何かキーが押されたときの動作を定義 myListener.onKeyDown = function() { // もしキーコードが90(z)であれば if (Key.getCode() == 90) { se001.attachSound("dog"); se001.start(); } // 本題と関係なし(キーコードの参考抽出) trace(Key.getCode()); }; // キー・クラスのリスナーとしてmyListenerを登録 Key.addListener(myListener); ボタンはボタン,キーはキーです。 本来全く関係ありません。 昔はキー・クラスなどなかったのでボタンでキーを取得していた時代もありました。 その昔流のやり方で書くと次のようになります。 まずフレームに次の1行を書きます。 //サウンド・クラスのインスタンスを生成 var se001:Sound = new Sound(); そしてボタンシンボルのインスタンスをステージ上に作成して, そのボタンインスタンスを選択した状態で ボタンインスタンス自体に次のように書きます。 on (keyPress "z") { se001.attachSound("dog"); se001.start(); } 一連の動作をさせるのにスクリプトなのに, それを別の場所に分けて書かなければならない事態にもなります。 また 「キーを監視するのになぜボタンを作成する必要があるのか?」 「変だ。どこかおかしいぞ。」 という妙な感情にもなります。 またこのようにしても, ボタンの「アップ」「オーバー」「ダウン」の絵柄が切り替わるわけでもありません。 (どう考えても少なくとも「オーバー」に変わるはずはありませんよね。) そんなこんなで, 今はこういう方法が使われることはほとんどありません。

関連するQ&A