メイン コーダーズルーム【スクリプト系】 ExternalInterfaceと16進数文字列のキーでエラー | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
奥村 典史 | Åê¹ÆNo.47845 投稿日時: 2011-8-2 16:14 |
常連 居住地: 大阪府(以前:東京都府中市 / 土日は大抵京都) 投稿: 69
使用環境:
FlashCS5.5, WinXP,Win7(64bit), 単体テスト用に FlexSDK3.4, As3Unit エディター FlashBuilder5 スクリプト ActionScript3.0 |
ExternalInterfaceと16進数文字列のキーでエラー 16進数の文字列をキーにしたオブジェクト{"0f": 100}みたいなのをExternalInterfaceに引数として渡すと何故か失敗してしまいます。
{"0x0f": 100}などなら成功します。 なぜキーが数字に変換されているのでしょうか?? 0始まりの文字列をキーにできないという仕様がどこかにあるでしょうか? 何かこの現象について知っている人がいらっしゃいましたら 教えてくださると幸いです。 #あるJsonファイルを読み込んでJavaScriptに渡したいのですが、この問題が発生して困っています。 #元ファイルは訳あって変えることができません。 #Flash内で変換するしか無いのかなぁ・・・
|
ひろゆき | Åê¹ÆNo.47846 投稿日時: 2011-8-2 16:23 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: ExternalInterfaceと16進数文字列のキーでエラー ActionScriptのバージョンくらいは示しましょう。
AS2.0では、確か「0」先頭の数値は8進法で扱われたはずです。 また、文字列を数値として処理しているのは、JavaScript側の可能性もあるのでは?
|
野中文雄 | Åê¹ÆNo.47847 投稿日時: 2011-8-2 17:35 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ExternalInterfaceと16進数文字列のキーでエラー ECMAScriptの「識別子」は、頭に数字が使えません。
引用: piggestさんは書きました: |
奥村 典史 | Åê¹ÆNo.47848 投稿日時: 2011-8-2 17:41 |
常連 居住地: 大阪府(以前:東京都府中市 / 土日は大抵京都) 投稿: 69
使用環境:
FlashCS5.5, WinXP,Win7(64bit), 単体テスト用に FlexSDK3.4, As3Unit エディター FlashBuilder5 スクリプト ActionScript3.0 |
Re: ExternalInterfaceと16進数文字列のキーでエラー 回答ありがとうございます
引用: ActionScriptのバージョンくらいは示しましょう。 ごめんなさい。AS3です。 (自分のプロフィールに書いてあるものと勝手に思い込んでました)
についても試してみました。 なるほど。AS2では真ん中は8になりますね。 知らなかったです。 AS3では大丈夫(真ん中は10)のようでした。 しかしながら、文字列で指定してある所が数字に変わってしまう・・・ というのは Flashのみの状態で再現できませんでした。 引用: また、文字列を数値として処理しているのは、JavaScript側の可能性もあるのでは? ご指摘いただいた点も調査してみました。 こちらで見てみたところ、 数字に変換される事はなく、キーが文字列の状態でログが出ました。 {"0xff":100}; {"0f":100}; {"f":100}; {f:100}; {0xff:100}; →成功 ただ、以下のケースで失敗しました。 {0f:100}; →失敗 javaScriptのエラー Uncaught SyntaxError: Unexpected token ILLEGAL ※よく見てみるとこちらのFlashからExternalInterfaceを通した直後同じログが出ていました。 引用:
以上の事からやはりExternalInterfaceを通す時に 何らかの変換が走ってしまっているように思います。 (なんとなく""を付けずに文字列にしてしまっているのかなぁ・・・と思いますが) |
奥村 典史 | Åê¹ÆNo.47849 投稿日時: 2011-8-2 18:16 |
常連 居住地: 大阪府(以前:東京都府中市 / 土日は大抵京都) 投稿: 69
使用環境:
FlashCS5.5, WinXP,Win7(64bit), 単体テスト用に FlexSDK3.4, As3Unit エディター FlashBuilder5 スクリプト ActionScript3.0 |
Re: ExternalInterfaceと16進数文字列のキーでエラー >野中文雄さん
JavaScriptで識別子名として扱われると、エラーが吐かれるようですね。 しかしながら、識別子になってしまっているのが困りものですね。 文字列のキーならば0始まりは問題ないのを確認しました。 とすると、どこかで文字列が識別子に変換されている様に思います。 回答ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |