• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash8のAction Scriptの計算でNaNとでます。)

Flash8のAction ScriptでNaNという文字が表示される理由と解決方法

このQ&Aのポイント
  • Flash8のAction Scriptで計算をする際、適切な数字が表示されずにNaN(Not a Number)と表示される場合があります。
  • この現象は、Flash8のバージョンの設定によって起きることがあります。Flash8のバージョンをFlash7に設定することで正しい数字が表示される場合があります。
  • この問題の原因は数字が文字として認識されてしまっていることにあります。解決策としては、計算する際に適切なデータ型を指定することが重要です。具体的な解決方法については詳細なコードや具体的な計算内容が必要ですので、詳細を教えていただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

現象は自体の細かい点は, 実際に同じファイルを見ることができないので何ともわかりませんが, 『テキスト入力』 のプロパティ(プロパティインスペクタ)で, 真ん中の下のほうにある,  A [単一行   v] Ab  < > □ となっている部分の < > ボタン,つまり「テキストをHTMLとしてレンダリング」ボタンが, 押されている状態になっているのかもしれません。 その場合,テキストは文字列どころかタグ付きの変な値になるため, 「NaN(非数)」になってしまいます。 「テキストをHTMLとしてレンダリング」ボタンが押されていないかどうかをチェックしてみて, 押されていないようでしたら, on (release) { a = Number(b)/Number(c); } のように, Number関数で,文字列を数値に変換するのが, 昔からのやりかたです。 これで, うまく行かないようでしたら on (release) { a = Number(b)/Number(c); trace(a); trace(b); trace(c); } としてみて, 「ムービープレビュー」で実際にテキストフィールドには何が入っているのか確かめてみるのが良いと思います。 ======================= しかし, テキストフィールドにはそもそも変数名を付けないようにして, インスタンス名を付けるというのが Flash MX 以降,正式なやりかたです。 Flashドキュメンテーション (ヘルプです) テキストフィールドのインスタンス名と変数名について http://livedocs.adobe.com/flash/8_jp/main/00001418.html  ~引用~ > プロパティインスペクタの [変数] テキストボックスで、 > 変数名をダイナミックテキストフィールドや > テキスト入力フィールドに割り当てることができます。 > これによって、変数に値を割り当てることができます。 > これは、旧バージョンの Flash Player (Flash Player 4 など) > 用のアプリケーションを作成するときに使用する可能性のある > 非推奨の機能です。 > それよりも新しいプレーヤーを対象にするときは、 > インスタンス名と ActionScript を使用して、 > テキストフィールドのテキストをターゲットにする必要があります。 ですから本当は, a,b,c は変数名として付けるのではなく, テキストフィールドにインスタンス名として付けて, on (release) { a.text = Number(b.text)/Number(c.text); } とするのが, 最も正式で最も無難な方法です。

mamiya009
質問者

お礼

sassakun様 お忙しい中、的確なご指示ありがとうございました。 テキストフィールドに変数名を付けない等、とても詳しく、また、初心者の私にもとても理解しやすいご解説を頂きありがとうございます。 早速、行ってみました。 はじめ、インスタンス名もa.textなどtextをつけ、うまくいかなかったのですが、インスタンス名からtextを取ってみたところ、ご指摘の通り、うまく計算が出来ました。 心より感謝しております。 どうもありがとうございました。 mamiya009

関連するQ&A