こんにちは。きんくまです。
今回は、AS3からGETでパラメータを送って、サーバーからXMLが返ってくるやつです。
よくあるWebサービスのAPIがこのパターンですね。
ポイントはXMLが返ってくるといっても、情報としてはテキストが送られてくることですね。
■Main.as
package { import flash.display.Sprite; import flash.errors.IOError; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; /** * ... * @author KinkumaDesign */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var req:URLRequest = new URLRequest(); req.url = "myxml.php?name=Peter&age=15"; var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; //返ってくるのはText urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); urlLoader.addEventListener(Event.COMPLETE, loaderCompleteHandler); urlLoader.load(req); } private function loaderCompleteHandler(e:Event):void { var urlLoader:URLLoader = e.target as URLLoader; var myXML:XML = new XML(urlLoader.data); trace("msg = " + myXML.msg); trace("luckyNo = " + myXML.luckyno); } private function ioErrorHandler(e:IOErrorEvent):void { throw new Error(e.text); } } }
■myxml.php
<?php $name = $_GET["name"]; $age = $_GET["age"]; $msg = '<?xml version="1.0" encoding="UTF-8"?>'; $msg .= '<data>'; $msg .= '<msg>Hello '.$name.'. Your age is '.$age.' years old !</msg>'; $msg .= '<luckyno>7</luckyno>'; $msg .= '</data>'; echo $msg; ?>
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ