apiLoader — помощник в загрузке данных JSON
25 Авг 2009
Помощник в организации запросов в формате JSON
package main
{
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.system.Security;
import com.adobe.serialization.json.JSON;
public class api_loader
{
public var myXML:XML;
private var defUrl:String = 'http://site.ru/api.php';
private var req:URLRequest;
private var loader:URLLoader;
public var dataVars:XML;
public var appParent;
public const GET_GAME_DATA = 1;
public const USER_LOGIN = 2;
public const BUY_WORK = 3;
public const CHECK_USER_BAN = 1000;
private var myCallback:Function;
function api_loader(owner)
{
this.appParent = owner;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
}
public function action(my_url:String, sendVars:URLVariables, callback:Function):Boolean
{
var url:String;
if (my_url!='')
{
url = my_url;
}
else
{
url = defUrl;
sendVars.rnd = Math.random();
}
req = new URLRequest(url);
req.data=sendVars;
req.method = URLRequestMethod.POST;
trace('REQ: '+url);
trace('VARS: '+sendVars);
try
{
myCallback = callback;
loader.load(req);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
return false;
}
return true;
}
private function completeHandler(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
var o:Object = JSON.decode(loader.data);
trace(loader.data);
this.myCallback(o);
}
}
}
Использование:
var apiLoader = new api_loader();
var sendVars:URLVariables=new URLVariables();
sendVars.cmd = '_user';
apiLoader.action('',sendVars, function(data){
trace('calback data '+data);
})
первый параметр — это не дефолтный урл, дефолтный указан в самом классе
второй — список параметров в формате URLVariables
третий — callback функция, которая выполнится после выполнения запроса
Последние комментарии