重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

初歩的な質問ですが、F5で合計スクリプトを作成したところ、どうもうまくいきません。

<仕組み>

「テキスト入力」に変数を指定し、合計をカウントするものです。

「  」変数a
「  」変数b
---------------合計
「  」変数c

ボタンに以下を設定。ボタンで合計を算出する。

on (release) {
var c=a+b;
}

結果的には、a=1 b=1の場合 11となってしまいます。


c=a*bやc=a-bしか計算されませんでした...

どうかご教授くださいます。

A 回答 (1件)

厳密にいうと変数の値として数値を扱うとき、あるいは文字列を扱うときは、然るべきオブジェクトを育成する必要があります。


しかしflashでは数値(文字列)が代入された時点でそれぞれのオブジェクトが自動育成されます。つまり数値なのか文字列なのかを自動認識してくれるわけです。
今回、a+bが"2"ではなく"11"になってしまうのは変数が「数値」ではなく「文字列」として認識されているためです。テキスト入力から入力した値は例え数字でも文字列として認識されます。他に原因があるのかもしれませんが、aまたはbはテキスト入力からの値ではありませんか?
といってもテキストボックスのタイプをを変更する必要はありません。ようは文字列を数値として認識させてあげればよいだけですから。
長くなりましたが
var c=Number(a)+Number(b);
が回答です。

ちなみに文字列に対しては足し算以外の式が適応できないため足し算以外の場合は数値として計算されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

そうですね、文字列として自動認識してくれちゃうんですね...flash4までは、両方平気だったのでついその習慣がついてしまいました。

また、掛け算や引き算などは、数値として認識してくれる辺りが、統一感に欠けますが、これも、Flash5以降の慣習として、オブジェクト指向言語の勉強が必要な訳ですね...

大変勉強になりました。また、いつかよろしくお願いします。

お礼日時:2003/06/20 09:45

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