トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     キーボードイベントが発生しないのですが
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ugomeku299
Åê¹ÆNo.45868
投稿日時: 2010-9-19 1:35
新米
居住地:
投稿: 1
使用環境:
キーボードイベントが発生しないのですが
お初にお目にかかります。
お知恵をお借り願います。

AS3で組んでるのですが。
ドキュメントクラス内に以下のようにキーボードイベントのリスナーを使っています。

this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown);
????
private function keydown(event:KeyboardEvent):void
{
if(event.keyCode==Keyboard.RIGHT){
 this.nextFrame();
}
}
キーボード操作ではメインタイムラインを一コマずつ進め
以下の説明のようにシーンを変更するためにつかっています。

メインタイムラインの各フレームに、子ムービークリップを入れ各シーンの詳細アニメを流すようにしてます。
そのムービークリップ内の詳細アニメを見進めるには、ムービークリップ内に設置されたボタンを操作するようにしています。

子ムービークリップ内のボタンを操作したのち、
そのムービークリップが再生されると、その操作してたボタンが消える内容になっています。

そのムービークリップのボタンが消えてしまったあとでは、マウスによってFLASH画面内の
どこかをクリックしないとキーボードのイベントが働きません。

event.targetをtraceで出してみると、マウスクリックしたボタンに対して
都度targetを変更するらしく、
選択していたtargetのボタンが再生中消えてしまうと、そのままではキーボード操作しても
イベントを発してくれないようです。
このような現象に対応するにはどうすればよいでしょうか。

event.targetが変更されたらば、強制的にまたstageに戻すようなことはできませんでしょうか。

よろしくお願いします
c-geru
Åê¹ÆNo.45871
投稿日時: 2010-9-19 23:40
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: キーボードイベントが発生しないのですが
前に似たような現象に出会ったのですが、ムービークリップ内に配置したボタンに
btn.buttonMode = true
btn.addEventListener(MouseEvent.CLICK,onClick_btn);
function onClick_btn (evt:MouseEvent):void {
	this.nextFrame()
	trace("btn",this.currentFrame)
	stage.focus = null
}

のように、「stage.focus = null」を追加してみて下さい。クリック後にstageに対するフォーカスをクリアしておくと、たぶんキーボードイベントを正しく拾ってくれると思います。

ちょっとよくわからないのですが、フォーカスを持っていたボタンが消えてしまうと、stageがフォーカスを正しく判断できなくなってしまうような感じです。
maki_an
Åê¹ÆNo.45894
投稿日時: 2010-9-21 21:29
半人前
居住地: 東京
投稿: 47
使用環境:
FlashCS5

WIN7

DELL PentiumD 1.5Ghz
Re: キーボードイベントが発生しないのですが
私も同じ現象にあいましたが、
その、消えてしまうボタンを、ボタンインスタンスではなく
ムービークリップインスタンスにしたら、直りました。

もちろん、ムービークリップインスタンスに変更しても、
スクリプトで指示さえ与えればボタンのように押せます。
試してみてください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops