Flashのキーイベント処理でなかなか不具合が取れず、困っています。
よろしくお願いします。
今作っているFlashは1つのデータ内に複数のページが存在し、ページごとにキーイベント処理内容が異なる仕様のため、それぞれにキー処理を行っています。
内容は、下のようなスクリプトを書いています。
-<ページ(1)でのクリアキー判定>----------------
var Key_object = new Object();
Key_object.onKeyDown = function(){
code = Key.getCode();
if(code == 46){
//終了処理
}
}
Key.addListener(Key_object);
-----------------------------------------------
-<ページ(2)でのクリアキー判定>----------------
var Key_object2 = new Object();
Key_object2.onKeyDown = function(){
code2 = Key.getCode();
if(code2 == 46){
//ページ(1)へ戻る処理
gotoAndPlay("page1");
}
}
Key.addListener(Key_object2);
-----------------------------------------------
ですが、上の処理だとページ(2)でクリアキーを押した時にページ(1)に戻ってほしいのに、何故かページ(1)のクリアキー判定まで行われてしまい、終了処理がなされてしまいます。
この件についての原因と打開策が知識の乏しい私では見当たりません。
また、違う人に聞いたところ「ページ(2)でのクリアキー判定の方はイベントリスナーを使わずにキー判定を実装して」といわれました。
このイベントリスナーを使わずにクリアキーの判定を実装する方法がわかりません。
どなたか、上のスクリプトでの不具合原因や打開策、また「イベントリスナーを使わないクリアキーの判定方法」が分かる方、いらっしゃいませんでしょうか?
No.1ベストアンサー
- 回答日時:
ご質問は2つですか?
-------------------------------------
> 故かページ(1)のクリアキー判定まで行われてしまい、
delete でイベントリスナーのメソッドは削除できると思います(多分)。
フレーム2 に行ったときとか,その前で。
delete Key_object.onKeyDown;
「イベントハンドラメソッドはdeleteで消せ!」
http://f-site.org/articles/2004/05/22140833.html
------------------------------------
> 「ページ(2)でのクリアキー判定の方はイベントリスナーを使わずにキー判定を実装して」
これは古来からある方法(Flash1くらいからある方法)で,
何でも良いのでボタン(ボタンシンボルのインスタンス)を作成して,
そのボタン自体に,
on (keyPress "<Delete>") {
// 何かの処理
}
のように書けばできます。
ボタンが見えて困る場合は透明な塗りをボタンにするとか,
ボタンのアルファを 0 にするとか,
ステージ外の見えない場所にボタンを置くとか,
背景画像の下のレイヤーにボタンを隠すとかとかとか…
そんな方法で誤魔化します。
昔(というかつい最近まで,というか携帯などは今でも),キーの判定は,
キークラスは使用せずに,
ボタンの on (keyPress) ハンドラで取っていました(います)。
「Flashのキーイベント処理について」の丁寧な回答、本当にありがとうございました。
しかも厚かましくも二つの質問に答えていただいてしまって恐縮しきりです。
一つ目のイベントハンドラを消す方法では何故か不具合が解消されませんでした。。。すみません。
何か別の原因があるのでしょうか・・・?
ですが、on (keyPress "<Delete>")を実行すると難なくクリアできました!
このon (keyPress "ボタン処理")の方法は知っていたのですが、クリアキーの記述方法が"<Delete>"だと知らなかったために(てっきり<clear>かと思って記述したこともありましたが、もちろん実行されず・・・)今回のようにキーコード値の"46"を拾う方法を取っておりました。
本当にありがとうございました!
大変助かりました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- マウス・キーボード パソコンのゲームで押しずらいキーがあったのでchange keyというキーの割り当てを変える ソフト 1 2023/03/17 09:43
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- フリーソフト 1秒毎にキーの←を押すソフト 1 2023/03/06 04:27
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- JavaScript functionはhtmlやjsに2度使えませんか 2 2022/08/03 19:55
- Windows 10 先日、windows10のパソコンが故障したので、修理出しました。この前戻ってきたのですが、回復キー 2 2022/07/05 17:00
- Java Java 南京錠 2 2023/02/04 11:46
- Chrome(クローム) HPの様子が変わった 2 2022/03/25 05:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptでMsgBoxのYesNoボック...
-
C# chart controlの透過について
-
UWSCのBTN関数について。
-
キープレスとボタンクリックの...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
外部ファイルを読み込んだ際に...
-
複数行テキスト領域に中の文章...
-
else if文の順序を変えることに...
-
IP Address 入力フォームについて
-
CreateDialogについて
-
POIでのテキストボックス作成に...
-
GetModuleFileName(他のアプリ,...
-
変数に256文字以上のテキストを...
-
ActionScript3のMovieClipについて
-
ActionScriptエディタを作りた...
-
スクロールバーとSEO
-
Flashでカラーシュミレーション...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBScriptでMsgBoxのYesNoボック...
-
UWSCのBTN関数について。
-
ダブルクリックと2回クリックの...
-
C# chart controlの透過について
-
webページ上、TABフォーカス出...
-
flash のステージの背景色
-
マウスクリックした回数がカウ...
-
Motifのイベントの制御について...
-
ホームページ・ビルダーでリン...
-
【プログラミング】ショートカ...
-
キープレスとボタンクリックの...
-
ボタンの背景を透過させたいです!
-
FLASHで脱出ゲームを作る時の、...
-
Suzukaで一行ニュースティッカ...
-
プログラミング、アーキテクチ...
-
photoshopで書いた四角の枠の中...
-
YOASOBI
-
テキストボックスの中身をリセ...
-
五芒星は、悪魔崇拝とどういう...
-
VBAで改行の入ったデータの正規...
おすすめ情報