Показать сообщение отдельно
Старый 26.02.2015, 23:00
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 20  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Вот.... выкладываю все на чем тестирую:

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);
 
}
 
 
			}
		}
 
}
Работаю на локальном сервере, работает отлично.