Вот.... выкладываю все на чем тестирую:
universall.php

PHP код:
<?php
$method = $_POST['method'];
getContent();
function getContent() {
echo '<?xml version="1.0" encoding="utf-8"?>
<response>
<user>
<diamond>500</diamond>
</user>
</response>';
}
?>
вот класс Packet.as

Код AS3:
package {
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
public class Packet {
public static const HOST: String = "http://server/server/";
public static const SCRIPT: String = "universal.php";
private var _callback: Function = null;
public function Packet(method:String, callback:Function, params:Object = null) {
_callback = callback;
var loader: URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
var vars:URLVariables = new URLVariables();
vars['method'] = method;
if (params != null) {
for (var i:String in params) {
vars[i] = params[i];
}
}
var rand: String = "?" + method;
var request:URLRequest = new URLRequest(Packet.HOST + Packet.SCRIPT + rand);
request.method = URLRequestMethod.POST;
request.data = vars;
trace(request.data.toString());
try {
loader.load(request);
} catch (e:Error) {
trace(e.getStackTrace());
}
}
private function onSecurityError(e:SecurityErrorEvent):void {
e.target.removeEventListener(Event.COMPLETE, onComplete);
e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
}
private function onIOError(e:IOErrorEvent):void {
e.target.removeEventListener(Event.COMPLETE, onComplete);
e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
trace("INPUT / OUTPUT ERROR");
}
private function onComplete(e:Event):void {
e.target.removeEventListener(Event.COMPLETE, onComplete);
e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
var data:Object = e.target.data as Object;
trace("PACKET DATA:", this, unescape(String(data)));
if (_callback != null) {
_callback.call(null, data);
}
}
}
}
вот класс Main.as

Код AS3:
package {
import flash.net.*;
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends Sprite {
var xml:XML = new XML();
public function Main():void {
var packet:Packet = new Packet("getContent", onReply);
function onReply(params:Object):void {
// trace(params.reply);
var xml:XML = new XML(loader.data);
diamond.text = String(xml.user.diamond);
}
}
}
}
Работаю на локальном сервере, работает отлично.