都道府県穴埋めゲーム

こんばんは。質問ですが、携帯電話の"5"を押した時に
今つくっているゲームのスコアにプラス100させようと思い、
on(keyPress"5"){
score += 100;
}
と書いたところ、プラス100されるのですが
5を押しっぱなしにするとずっとプラス100され続けて
しまいます。
5を押した時に、一回だけプラス100をするには
どうすればよいのでしょうか?

よろしくお願いします。

A 回答 (1件)

その問題点は知っていましたが,


良いアイデアも今のところ思いつきません。

他のコミュニティのURLです。

FLASH-JP.COM - フォーラム
「【Flash Lite】keyPressについて」
http://www.flash-jp.com/modules/newbb/viewtopic. …

上のURLに,
> DoCoMoはF700i、P506iC、AUはW22SAがあるんですが
> DoCoMoはリピートしませんが、AUはするんです。

と書いてあるように機種依存の問題です。
また,上のURLだと,結局結論は 「あきらめましょう」 ということのようです。
私も今,色々考えてみましたが。良いアイデアは結局閃きません。

おそらく,ムービープレビューしたときに,
モニタ上に表示されるキーボタンの 5 を押したときではなく,
PCの キー5 を押したときに近いような現象が起こるのだと思いますが,
私の Flash 8 環境では,
そういうモニタ上に表示される キーボタン の 5 を押したときに,
on (keyPress "5") が連続で呼び出されるデバイスは見つかりませんね。
したがって,
良いアイデアは結局閃きませんし,仮に閃いたとしても検証が難しいですね。



良いアイデアではありませんが,
こんなのはどうでしょう?

スコアにプラスするボタンに次のように書きます。
-------------------------------
on (keyPress "5") {
if (flag == 0) {
score += 100;
flag = 1;
}
}
-------------------------------

そして,「リセットボタン?」みたいなものを用意して,
そのボタンに次のように書きます。
-------------------------------
on (keyPress "0") {
flag = 0;
}
-------------------------------

一度 キー 5 が押されると,
キー 0 が押されない限り,
on (keyPress "5") の if 文が成立しないので,
score += 100 の連続実行は起こりません。

全然良いアイデアだとは思いませんし,
このくらいはすでに考えられているかもしれませんが,
ひょっとしたら解決手段の1つにはなるかもしれないと思ったので,回答させていただきました。
    • good
    • 0
この回答へのお礼

やっぱりそーですよね。。
フラグを使うアイデアは私も考えたのですが、
それだと、操作性に問題がでるのであきらめていました。
他にもいろいろと調べてみたのですが、やはりよい解決策が
見つからないので、企画と仕様自体を見直そうかと思います。
ありがとうございました。

お礼日時:2006/10/07 17:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報