質問: 13) { //ページcへ移動 } }
回答: buttona も buttonb もキーに関係しない見せかけだけのものですから, 私なら次のようにすると思います。 まず各ボタンムービークリップ buttona と buttonb 自体に直接書いたスクリプトを全て消します。 そしてフレームに書くスクリプトを次のようにします。 -------------------------------- // 各ボタンmcの表示非表示初期設定 buttona._visible = true; buttonb._visible = false; // フラグ(またはカウンター)を用意 var keyflag:boolean = false; // キー監視用にするオブジェクト「mykey」を作成 var mykey:object = new object(); // キーをダウンしたときの動作 mykey.onkeydown = function():void { // if (key.getcode() == 13) { // 各ボタンmc内のタイムライン操作 buttona.gotoandstop(2); buttonb.gotoandstop(2); } }; // キーをアップしたときの動作 mykey.onkeyup = function():void { // if (key.getcode() == 13) { // 各ボタンmc内のタイムライン操作 buttona.gotoandstop(1); buttonb.gotoandstop(1); // 各ボタンmcの表示非表示を切り替える buttona._visible = !buttona._visible; buttonb._visible = !buttonb._visible; // // もし keyflag が false であれば if (!keyflag) { // _root をフレーム「pageb」に進めて再生 _root.gotoandplay("pageb"); // keyflag を true にする keyflag = true; // // keyflag が true であれば }else{ // _root をフレーム「pagec」に進めて再生 _root.gotoandplay("pagec"); // keyflag を false にする? keyflag = false; } } }; // 「mykey」をkeyクラスのリスナーとして登録 key.addlistener(mykey); -------------------------------- 単フレームのスクリプトにするために buttona と buttonb を両方とも出没させた上で_visible を変える という妙技をしているのではないのでしょうか? それならスクリプトの場所も一ヶ所の方が管理しやすいでしょう。 また最初にも書きましたが, キーダウン/アップはボタンとは関係ないのです。 いかにも関係あるかのように見せる手品を作っているわけですよね? 手品師が自分の作った手品にはまってどうするんですか(笑)。 >// 何かキーが放された時 >onclipevent (keyup) { > if (key.getcode() == 13) { > //ページcへ移動 > } >} これだと buttona に書いても buttonb 書いてもは関係なく, enter キーが放されたときにページcへ移動します。 キーとボタンとは関係がないので, 上のスクリプトではキー監視役を buttona/b ではない mykey にさせています。 これを作らなくても buttona.onkeydownp~ や buttona.onkeyup~ でもできます。 しかしそうするとやはり buttona に惑わされそうな自分が出て来るので,あえて mykey を用意しています。