メイン 迷える子羊の部屋【初心者専用】 【Flash Lite】keyPressについて | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ebi | Åê¹ÆNo.17795 投稿日時: 2005-6-4 18:20 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
【Flash Lite】keyPressについて なんと書けば良いのか分からなかったので、
タイトルが曖昧ですいません。 keyPressイベントハンドラは ボタンを押してる限り何度も実行しちゃいますが、 1度ボタンを押したら指を離すまで キーイベントを受け取らないって事は可能でしょうか? またreleaseのように押した時でなく、 離した時にイベント受け取る事は可能でしょうか? |
OhXCD | Åê¹ÆNo.17800 投稿日時: 2005-6-4 19:32 |
半人前 居住地: 関東 投稿: 53
使用環境:
WinXP SP2 FlashMX |
Re: 【Flash Lite】keyPressについて FlashLiteは触ったこと無いのですが、
単純にフラグを用意して、初期値はfalse。 KeyPressハンドラ内でフラグがfalseだったらTrueにして、 通常のハンドラ内処理実行。 既にtrueだったらハンドラから抜ける。 こんな感じでどうでしょう? 次にKeyPressイベントを受け取る前にフラグをリセットする必要がありますが。 離したときは、、、 Lite知ってる方にお任せします。 力技でやるなら、enterFrameかsetIntervalで監視ルーティンぶん回して、 KeyPressのフラグがfalseになるタイミングを得るとか。 かなり無茶ッすね |
森 巧尚 | Åê¹ÆNo.17801 投稿日時: 2005-6-4 20:14 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: 【Flash Lite】keyPressについて 引用:
keyPressイベントハンドラは keyPressイベントハンドラは、「キーが押されたとき」に1回来るだけですよ。ただパソコンの場合ずっと押していると、キーリピート機能が働いて「何度も繰り返し押している」ような状態になって何度も実行します。 よくわからないんですが、携帯でもそうなります? でも「キーが押されたとき」はわかりますが「キーが離されたとき」はわからないですね。 それに、OhXCDさんが言われるような
だから、状況に応じた工夫が必要そうです。 そもそも、キーを押し続けているとき「繰り返し起こって問題になる」のはなぜでしょうか? もし「アニメーションが何度も頭から再生され直してしまう」ような場合でしたら、 「アニメーションが終わるまで繰り返さないようにフラグを使う」とか 「アニメーションが始まったらキーを監視しているボタンを消してしまう」という 方法でいけませんか?
|
ebi | Åê¹ÆNo.17802 投稿日時: 2005-6-4 20:29 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 【Flash Lite】keyPressについて OhXCDさん、ご返信ありがとうございます。
引用: 単純にフラグを用意して、初期値はfalse。 実はここに書き込む前の試行錯誤段階でコレやってました。 なんですよねぇ...これでできそうな気がしちゃうです。 でもね、だめなんすよ。 “既にtrueだったらハンドラから抜ける。”の後、 falseになりますわな。キーボタンは押されっぱなしだから、 次のキーイベント受け取り、falseだからTrueにして ハンドラ内処理しますわな。で、またtrueだから抜け、 処理し、抜け、処理し、、、、、結果は同じ。 これ、KeyPressイベントそのものをtrueとfalseで なぞるだけなんです。 引用: e力技でやるなら、enterFrameかsetIntervalで監視ルーティンぶん回して、 enterFrameやsetIntervalはLiteではサポートしておらず... よしんば、できたとしても... 前述の通りです。 せっかく返信して頂いたのにすいません。 引き続き試行錯誤してみます。 ver4ではどうやってたっけなぁ... |
ebi | Åê¹ÆNo.17803 投稿日時: 2005-6-4 20:57 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 【Flash Lite】keyPressについて 森さん、ご返信ありがとうございます。
引用: ただパソコンの場合ずっと押していると、キーリピート機能が働いて「何度も繰り返し押している」ような状態になって何度も実行します。 さすがのツッコミでございます。これも面白い(?)っていうか、困った事なんですが、機種によってキーリピートするものとしないものとあるようなのです。 うちはテスト用の実機としてDoCoMoはF700i、P506iC、AUはW22SAがあるんですが(テストしたい方、使って下さい)DoCoMoはリピートしませんが、AUはするんです。 |
森 巧尚 | Åê¹ÆNo.17804 投稿日時: 2005-6-4 21:16 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: 【Flash Lite】keyPressについて Flash Liteのように制限が多くてできることが少ない場合は、1つの解決方法だけをずっと考え続けるのではなく、いろいろな方向から考えて、状況に応じた工夫をすることが必要です。
そもそも、キーを押し続けているとき「繰り返し起こって問題になる」のはなぜでしょうか? 「なぜ問題か」という視点から考えてみてはどうでしょうか。
|
OhXCD | Åê¹ÆNo.17805 投稿日時: 2005-6-4 21:16 |
半人前 居住地: 関東 投稿: 53
使用環境:
WinXP SP2 FlashMX |
Re: 【Flash Lite】keyPressについて コンテンツ内容によるとは思うのですが、、、
KeyPressを押した瞬間だけ受け取って、 その後もう一度押すまで見ないってことですよね。 次にKeyPressを見に行くまでフラグをfalseのままって訳には行かないのでしょうか? |
ebi | Åê¹ÆNo.17806 投稿日時: 2005-6-4 21:19 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 【Flash Lite】keyPressについて 引用:
だから、状況に応じた工夫が必要そうです。 おっしゃる通りだと思います。捕われすぎてもいけませんよね。「繰り返し起こって問題になる」状況は何かといいますと... ま・企画内容を話しちゃいますけど、釣りゲームなんです。魚は岸から離れようとする、釣り師は岸に寄せようとする、息詰まる攻防戦です。今回の件は“釣り師が岸に寄せようとする”のに使ってます。「5」キーを押すたび、一定の値だけ魚のY値が岸側に近づきます。魚の抵抗はジドウです。「負けるかー」とキーを連打するユーザー...をボワーンと想定してるわけです。なのに押しっぱなしで楽々釣果! 台無しなのです。 実は最初は“リールを巻く”ってイメージで、キーを1→2→5→4→の順で押すのを繰り返すって事にしてたんです。 (端末のボタンの並びでグルグル回る感じです)これはフツーにできて動作も問題なかったのですが、イメージと現実は往々にして違うもので... 操作性がかなり悪かったのです。それなら!と、ボタン2つにしました。1→2→を繰り返す形です。でもやっぱり操作性が悪いのです。そんなわけで結局1つにしたら...って経緯があります。 おわかりいただけますでしょうか? 「くだらんこだわりは捨てろ!」って解決法はナシでお願いします。 |
ebi | Åê¹ÆNo.17807 投稿日時: 2005-6-4 21:37 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: 【Flash Lite】keyPressについて OhXCDさん、ふたたび、ありがとうございます。
引用: KeyPressを押した瞬間だけ受け取って、 さきほどの僕の返信、違ってましたかね? ああいう事ではなかったのでしょうか... 森さんがおっしゃるキーリピート機能によって、そのKeyPressを押されている間はずーっと繰り返し受け取るって事ですよ? キーを押してる状態の内は“押しっぱなしの状態”でなく“何度も押されてる状態”としてFLASH側で受け取ってしまうという事です。“次に”も、その“次に”も、押されてる状態の範疇なんです。ちょっと説明しにくいですが... |
森 巧尚 | Åê¹ÆNo.17808 投稿日時: 2005-6-4 22:09 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: 【Flash Lite】keyPressについて キーが離されたことがわかる「onKeyUp」が使えなくて、
キーが今押されているかを調べる「Key.isDown」も使えないということは、 「ユーザーが今そのキーを離しているか」を調べるってできるのかな? 機種によってキーリピートが起こるということは、Flash側からは「キーが連打されたのか」「キーがただ押し続けられているのか」の区別がつかないということですよね。 引用: 「くだらんこだわりは捨てろ!」って解決法はナシでお願いします。 と、言われますが、「なぜそこにこだわるのか」をもう一度問い直してみるというのは大事じゃないでしょうか? 多少操作性が悪くても、全然ゲームにならない方法を選ぶべきかどうか。 ただ個人的意見ですが、今の「単純に連打するだけでゲームが勝てる」という仕様は機種によって再生スピードに違いが出そうなFlash Liteでは、機種によって差が出そうな気もしますけどね。 例えば、ですが「うきが沈んだ直後のタイミングにクリックする」ような仕様にすれば、ワンキーでもキーリピートによる連打で楽勝にはならなくなったりしますよね。 違う仕様を検討するのも方法かと・・・
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |