• 締切済み

Flash MX2004で計算結果が「NaN」になります

Flash MX2004で、以下のスクリプトをボタンに設定しようとしていますが、最終的な計算結果が「NaN」になってしまいます。 /* 正解を集計して合計フィールに代入する */ on (rollOver) { var kai:Number = Number(kotaeA01.text)+Number(kotaeA02.text)+Number(kotaeA03.text)+Number(kotaeA04.text)+Number(kotaeA05.text)+Number(kotaeA06.text)+Number(kotaeA07.text)+Number(kotaeA08.text)+Number(kotaeA09.text)+Number(kotaeA10.text)+Number(kotaeA11.text)+Number(kotaeA12.text)+Number(kotaeA13.text)+Number(kotaeA14.text)+Number(kotaeA15.text); kaitou.text = kai; } kotaeA**.textとkaitou.textはTextInputコンポーネントです。 変数kaiに数値として、kotaeA**.textを加算していき、最後にkaitou.textへ代入しようとしています。

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

kotaeA01~kotaeA15には全て数字が入力されていますか? Number("") //空文字列 あるいは undefined や Number("a") //文字列 の結果はNaNになります。 また NaN + 12 のように計算式にNaNがあっても結果はNaNになります。 質問とは関係ありませんが配列アクセスを使うともっと見やすくなります。 kotae = 0 for (i = 1;i<=15;i++){ kotae += Number( _root["kotaeA"+i].text) ); } kaitou.text = kotae; ただkotaeA01などをkotaeA1に直す必要があります。

haoxiao
質問者

お礼

配列アクセスに変更する時に、kotaeA01などを全てkotaeA1に直していたら、記述にミスを発見しました。 その後、テストしたら問題なく動作しました。 haoxiao様、ありがとうございました。

haoxiao
質問者

補足

ご回答、ありがとうございます。 半角の0、1,-1のいずれかが入力されるようにしてあります。 また、それぞれに on (load) { this.restrict = "0-9"; } を割り当ててあります。 今から、念のため入力される「0」「1」「-1」をチェックしてみます。 配列アクセス、記述の仕方に悩んでいました。ありがとうございます。 早速、その記述に変えたいと思います。 もちろん、kotaeA01などを全てkotaeA1に直します。

関連するQ&A