メイン コーダーズルーム【スクリプト系】 object型を数値型にキャスト | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nacbox | Åê¹ÆNo.46154 投稿日時: 2010-10-18 15:04 |
新米 居住地: 東京 投稿: 25
使用環境:
Win7 / Flash CS4 PRO |
object型を数値型にキャスト AS2です。
object型のデータに入っている、数字のデータがあります。 これを計算などに使おうとすると数値型でないためうまくいきません。 これが、string型などであれば、
と、簡単にキャストされます。 しかし、上記変数aがobject型だと、その中身が"100"だとして、
と、「キャストはされているっぽいのだが値が取得できない」という状態になります。 object型の値を、そのまま数値型に変換する方法はないでしょうか? ちなみに、このスレッドのやり方は見ましたが、いちいち関数を介さなくちゃいけないのかな?と読み取れて、ちょっと面倒だなと感じています。 解釈が間違っているのかもしれませんが……。 |
コマツ | Åê¹ÆNo.46155 投稿日時: 2010-10-18 15:59 |
職人 居住地: 東京都葛飾区 投稿: 356
使用環境:
windows7 CS5.5 CS6 |
Re: object型を数値型にキャスト nacboxさん、こんにちは。
プリミティブ型と複合型の変数の違いかと思います。 以下のページが参考になるかと思います。 Flashデベロッパーセンター:Flash ActionScript 2.0習得ガイド Flash ActionScript入門ノート 3.4 データ型 数値と文字列は、プリミティブ型なので、キャストがうまく行くかと思います。 Object型の変数は、複合型(リファレンス型)なので、参照データをプリミティブなデータに変換しようして失敗するのではないかと思います。 データ内容によるかと思いますが、Object型にはtoString()という関数がありますので、Stringに変換してから、Number型にキャストするとうまく行くかもしれません。
参考になればと思います。 |
野中文雄 | Åê¹ÆNo.46156 投稿日時: 2010-10-18 16:00 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: object型を数値型にキャスト まず、typeof演算子が返す値は、いわゆるデータ型ではありません。問題にされているのは、Object型のデータでなく、Array型つまり配列ではないのでしょうか。
配列は数値には変換できません。Number()関数は、数値に変換できない引数に対してはNaNを返します。そして、NaNをtypeof演算子で評価すれば"number"です。
配列からエレメントを取出すには、インデックスを指定する必要があります。
引用: nacboxさんは書きました: |
nacbox | Åê¹ÆNo.46158 投稿日時: 2010-10-18 17:11 |
新米 居住地: 東京 投稿: 25
使用環境:
Win7 / Flash CS4 PRO |
Re: object型を数値型にキャスト コマツさん、野中さん、ありがとうございます!
いつも質問するばかりで、他の方の質問に回答できずに申し訳ないです。 引用:
このあたりの理解がなんとなく曖昧なまま進んでしまっているので、一度きちんと整理しなければなりませんね。 とりあえず、toString()をかませたら正常に数値変換できました。 引用:
XMLのデータを使用しているのですが、使用しているXML読み込み用外部クラスの説明文によると、object型に各値が格納されるとあるので、たぶんobject型なのだと思います。 しかし、ここで「たぶん」と言ってしまうあたりが、自分の理解の浅さで恐縮です……。 ともかく、無事解決しました。 ありがとうございました! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |