Цитата:
|
Что за userID и password ?
|
Ну это у меня для авторизации используется. Туда данные из соцсетей записываются. Отправку пароля и userId можно вообще убрать, если она не нужна. Просто в моем случае она используется каждый раз.
Вот упрощенный вариант:

Код AS3:
package {
import flash.events.Event;
import flash.events.EventDispatcher;
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 extends EventDispatcher {
public static const HOST: String = "http://server.com/";
public static const SCRIPT: String = "call.php";
private var _callback: Function = null;
/**
*
* @param называние метода, который нужно вызывать на сервере, передается в
* POST с ключом method
* @param callback метод который вызывается после прихода ответа от сервера
* должен принимать один параметр типа Object
*/
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 = "?" + int(Math.random() * 10000);
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);
}
}
}
}