- 締切済み
ActionScript JSON
FLASHのActionScriptから、JSONデータを読み込んで、表示をさせたいのですが、 やり方が分かりません。よろしくお願いします。 JSONにより出力されたデータで、例えば {001:apple}があった場合、 FLASH上のインプットフィールド上にに001を入力すると、別インプットフィールド上にappleが表示されるようにしたいのですが、方法はありますか? よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- anyhelp
- ベストアンサー率43% (80/183)
まず、大事な前提として以下の説明はすべてstageで記述して行っているとします。 JSONを読み込んだ時strにロードした文字列が入っている場合を考えると var str:String = '{"001":"Apple"}'; とおなじですね。 JSON文字列をObject型に変換は var obj:Object = JSON.decode(str); とします。 objはドットでプロパティ参照できます。 trace(obj.001)とすると、本来、"Apple"と出力されるはずです。 しかし、変数は頭文字を数字にすることが出来ないのでobj.001という書き方は文法エラーになります。 こういう問題は事前に防ぐ事が出来、 var str:String = '{"name001":"Apple"}'; というようなネーミングにしておくことです。 そうすると obj.name001で本来の中身のデータ"Apple"を取り出せます。 このデータをテキストフィールドに表示させるには 画面上(stage)にstatusというインスタンス名のTextFieldがあったとすると status.text = obj.name001; とします。 次に、別のインプット用のTextFieldのtypeというインスタンス名があったとします。 このTextFieldにname001とタイピングし、別のボタンをおすと出る様にしてみます。 説明を簡単にするために画面にボタンがあり、それを押すと下の関数がよびだされるようにしておいたとします。 function output():void { status.text = obj[type.text]; } これでtypeにname001とかいて、ボタンを押すと、statusというTextFieldに出力されます。
お礼
ありがとうございます。大変参考になりました。
補足
すみません。当方ActionScriptの知識がほとんど無く、 分かりませんでした。 現在cgi内のjavascriptでJSONデータを読み込んで活用しています。 大元のcgiファイルのinputフィールドに記入した文字を自動でjavascriptにより別cgi送信し、JSONデータを出力します。送信した文字にマッチしたJSONデータを大元cgiの別のフィールドに表示する仕組みです。 フィールドに記入した文字を一度SQLサーバーに送信し、送信された文字を条件としてJSONデータを出力して、再度読み込む流れです。 これをFLASH内でできないかと考えています。 何かこれを実現している解説サイトなどが無いかと探していますが見つかりません。 もしよろしかったらご教授いただければと思います。 よろしくお願いします。