現在簡単なクイズができるFLASHを作成しております。 文字や番号をテキスト入力で入力させ、kotaeという変数に問題の答えとなる文字列をtextファイルから読み取ります。
解答というボタンを押すことによって 変数kotaeと入力した文字を比較して答えが一緒である場合
正解のフレームへ 間違っているなら不正解のフレームへジャンプさせたいと考えております。
半角英数字や半角数字数字などは判定がうまくいくのですが どうも全角文字はうまく判定できません
これの原因が分かる方おられませんか?
実際に見てみないと分からないと思いますので ソースを用意しておきますね。
今回は頭を削っておきますのでご了承ください。
://page.freett.com/ajisiotarou/output.txt
://page.freett.com/ajisiotarou/tes.fla
No.6ベストアンサー
- 回答日時:
Flash ばかり怪しんでいても解決しませんよ。
回答が遅くなってすみません。
最近,太陽が出ている頃に回答ができないもので…
問題は,Flash ではありません。
今回はパスでも無いようです。
問題は,「output.txt」です。
-----------------------------------------
bangou=1&mondai=犬も歩けば○に当たる、○に入る文字を答えなさい&
&mon1=人&mon2=缶&
&mon3=棒&mon4=猫&kotae=棒&
&mon5=猿&load_flag=1;
-----------------------------------------
これでうまく行くと思います。
元の 「output.txt」 には,
ちょうど, kotae=棒 の後に改行が入っていますね。
表示させるだけには,改行があっても良いのですが,
判定などさせる場合は "&" が必要になります。
厳密に言うと,元の 「output.txt」 は次のようになっています。
以下の 「↓」 は改行コードだと思ってください。
…&kotae=棒↓
&mon5=猿…
これをPCが見ると,
…&kotae=棒↓&mon5=猿…
のように見えますね。
変数 kotae の値は,「棒」ではなく「棒↓」です。
ボタンのスクリプトの中ですが,
if(kotae == _root.textclip.output){
これで,「棒↓ == 棒」 は false と判断されるので,
else{
this.gotoAndStop("huse");}
}
に行ってしまうのです(しまうのだと思います)。
テキストに "&" を入れれば以下のようになります。
…&kotae=棒&↓
&mon5=猿…
これをPCが見ると,
…&kotae=棒&↓&mon5=猿…
です。「↓」も読み込まれますが,無視されるので問題はなくなります。
ずっと以前は,外部テキストに改行を入れたい場合
みなさんだいたい,
aa=ああ&
&bb=いい&
&cc=うう&
&dd=…
という形式にされていたと思います。
でも最近のFlashの素材屋さんなどのデータには,
たいてい改行前の "&" がありませんよね。
if で判定をするにしても,しないにしても "&" は付けた方が良いと思います。
私は,逆に最初, "&" を絶対に付けなければならない物かと思いこんでいました。
それで最近,素材屋さんのテキストを見て,付けてなくてビックリした記憶があります。
絶対に付けなければならない物ではなくて,
付けなくても良い場合もありますが,付けなければならない場合もあるのですね。
ややこしいので,
改行する場合はいつも付けていた方が良いのかもしれません。
回答が遅くなって申し訳ないなんでとんでもないですよ・・
むしろこちらの御礼が遅くなって申し訳ないです
早速試させて頂いたところ無事に判定が出来ました、私はてっきりFLASH側の問題なんだと頭から思っておりました。
テキスト側が問題だったとは・・・・ これからは改行するたびに&を付けていきたいと思います。
この度は誠に有難うございました。
No.5
- 回答日時:
if(kotae==_root.textclip.output){
を
if("あああ" eq _root.textclip.text){
みたいな感じにしてテキストボックスにあああと入力してみてください。
本当に何度も何度もご丁寧に回答してくださってありがとうございました。
問題は無事に解決いたしました。
if("あああ" eq _root.textclip.text){ にしたところ問題なく判定はされておりました、これによってやはりFLASH側ではなく読み込まれているテキストが原因なのが分かりますね。
このたびはどうも有難うございました
No.4
- 回答日時:
>if(kotae ne _root.textclip.text){
何度も間違えてすみません^^;
if(kotae eq _root.textclip.text){
でしたね><
現在試せる環境がないので家に帰って忘れなければ試してみますね
No.3
- 回答日時:
間違えました。
>if(kotae==_root.textclip.output){
>を
>if(kotae==_root.textclip.text){
>としてもダメですか?
if(kotae==_root.textclip.output){
を
if(kotae ne _root.textclip.text){
としてもダメですか?
です。
この回答への補足
何度もどうもありがとうございます。
if(kotae ne _root.textclip.text){
の場合ですと正解のページにしか飛びませんでした。
if(kotae eq _root.textclip.text){
の場合不正解のページにしか飛びませんでした。
文字入力の判定をほかの手にしたほうがいいですかね?
ほかの手があればの話ですが・・・
No.2
- 回答日時:
on (release) {
trace("output="+_root.textclip.output);
trace("kotae="+kotae);
if(kotae eq _root.textclip.output){
this.gotoAndStop("sei");
}
else{
this.gotoAndStop("huse");}
}
これでダメだったわけですよね・・・
textclipと言うのは解答を入力するインスタンス名ですよね?
outputと言うものを使った事ないのですが
if(kotae==_root.textclip.output){
を
if(kotae==_root.textclip.text){
としてもダメですか?
この回答への補足
ifの判定を以下のようにしてみましたが無理でした
if(kotae==_root.textclip.text){
yamadachanさんが言ってらしたとおり
textclipと言うのは解答を入力するインスタンス名のことです。
それとoutputというのはtextclip内にあるtext入力の変数の名前です
No.1
- 回答日時:
実際のデータは見ていませんが
比較する時に=(イコール)を使っていませんか?
文字列の比較をする場合は=ではなくeq、逆の場合はneを使います。
この回答への補足
お答え頂きありがとうございました。
yamadachanさんがおっしゃっていた通り文字列を比較
する時に==を使っておりました
以下がソースです
on (release) {
trace("output="+_root.textclip.output);
trace("kotae="+kotae);
if(kotae==_root.textclip.output){
this.gotoAndStop("sei");
}
else{
this.gotoAndStop("huse");}
}
変数outputに入力したデータが入っております
変数kotaeには問題の答えが入っております
これでは=で判定しているので無理なのですよね?
そこで==の所をyamadachanさんがおっしゃっていた通りに くeqbなどを使用しましたがうまくいきません
それに半角なら判定できているといっておりましたがそれも無理でした。
問題の答えはtextファイルから読み出してそのまま変数kotaeに入れており、trace("kotae="+kotae); で確認してみたところ値は入っておりました。
traceでkotaeとoutputの値が同じ文字列が出力されているのにifの判定ではどうもうまくいきません
何が原因なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
uwscでExcelに自動記入
-
pptxをPDFで保存すると、90%サ...
-
キャラクター設定について
-
レジリエンス 変換キーが作動し...
-
スマホでサイトの画像を長押し→...
-
potplayerについて質問です
-
arduino プログラムについて
-
iPhoneです。 Adobeフラッシュ...
-
FLASH MX で作成した、flashやA...
-
iPad、iPhoneでフラッシュムー...
-
何種類の値があるかを調べる方...
-
flash (.swf) を編集したい
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ランダムに4桁の数字を表示する...
-
flashのおみくじのような(4桁...
-
スクロールバーの自作の仕方
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
ダブルクリックと2回クリックの...
-
シンボル化解除の方法
おすすめ情報