Jeg bruger den her klasse.
package Control
{
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
/**
* ...
* @author Jens Svensson
*/
public class Loader
{
public var onLoad:Function;
public var request:URLRequest;
public var loader:URLLoader;
public var _storedData:Object=null;
public function get storedData():Object {
return _storedData;
}
public function set storedData(d:Object):void{
_storedData=d;
}
public static const GET:String = URLRequestMethod.GET;
public static const POST:String = URLRequestMethod.POST;
public function Loader():void {
request = new URLRequest();
}
public function load():void {
loader = new URLLoader(request);
loader.addEventListener(Event.COMPLETE, loaded);
try {
loader.load(request);
}
catch (error:ArgumentError) {
trace("An ArgumentError has occurred.");
}
catch (error:SecurityError) {
trace("A SecurityError has occurred.");
}
}
public function loaded(e:Event):void
{
onLoad(this);
}
public function get data( ):String
{
return loader.data;
}
public function get url( ):String
{
return request.url;
}
public function set url(s:String):void {
request.url = s;
}
public function set method(s:String):void {
request.method = s;
}
public function get method():String{
return request.method;
}
public function get variables():URLVariables {
if (request.data == null) {
request.data = new URLVariables();
}
return URLVariables(request.data);
}
}
}
Et eksempel på at bruge den, godt nok til en php fil men du burde bare kunne skrive en ASP fil. Der er noget med at Flash, PHP og sessions ikke er gode venner, om dette også gælder ved asp ved jeg ikke. Eksemplet antager at filen skriver xml tilbage, hvis den ikke gør kan du bare skrive var date
tring=loader.data;
public function load():void {
var loader:Loader = new Loader;
loader.method = Loader.GET;
loader.variable.id=100;//sets id to 100
loader.url ="getUser.php";
loader.onLoad = loaded;
loader.load();
}
private function loaded(loader:Control.Loader):void {
var xml:XML=XML(loader.data);
}
denne linie:
loader.variable.id=100;//sets id to 100
er kun illustrativ for at vise hvordan du sender data til serveren, burde i php kunne hentes i $_GET['id'],
denne linie
loader.method = Loader.GET;
siger at det et HTTP GET kald hvis du ønsker post skriv
loader.method = Loader.POST;
Indlæg senest redigeret d. 15.11.2009 22:24 af Bruger #5620