Quantcast
Channel: Flash actionscript » Classe
Viewing all articles
Browse latest Browse all 2

[ActionScript 3] SendAndLoad communiquer entre flash et page serveur

0
0

Une fonction que je trouvais pratique en ActionScript 2 et qui n’a pas été reprise en ActionScript 3 est le SendAndLoad. Voilà une classe qui fait ce que faisait le SendAndLoad à savoir envoyer des variables à une page serveur (php, asp, .net …) et attend une valeur en retour.

package
{
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;

public class SendAndLoad
{
private var _urlRecupParam:String;
private var fctRetour:Function;

public function SendAndLoad(pUrl:String, pArrVariables:Object, pFctRetour:Function) {
urlRecupParam = pUrl;
fctCreerURLVariables(pArrVariables);
fctRetour = pFctRetour;
}

public function get urlRecupParam():String { return _urlRecupParam; }

public function set urlRecupParam(value:String):void {
_urlRecupParam = value;
}

private function fctCreerURLVariables(pArrVariables:Object):void {
var mesVars:URLVariables = new URLVariables();

for (var key:Object in pArrVariables) {
mesVars[key] = pArrVariables[key];
}

fctSendAndLoad(urlRecupParam, mesVars);
}

private function fctSendAndLoad(pUrl:String, pVars:URLVariables):void {
var request:URLRequest = new URLRequest(pUrl);
var loader:URLLoader = new URLLoader();

loader.dataFormat = URLLoaderDataFormat.VARIABLES;

request.data = pVars;
request.method = URLRequestMethod.POST;
loader.addEventListener(Event.COMPLETE, fctSendComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, fctSendAndLoadIOError);
loader.load(request);
}

private function fctSendComplete(pEvt:Event):void {
var loader:URLLoader = URLLoader(pEvt.target);
loader.dataFormat = URLLoaderDataFormat.VARIABLES ;
fctRetour(loader.data);
}

private function fctSendAndLoadIOError(pEvt:IOErrorEvent):void {
trace("IOError sur le send and load : " + pEvt);
}
}
}

Il faut créer une fonction de retour dans la classe principale qui traitera les données envoyer en retour de votre requête de flash.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images