参考书籍:flash actionscript 3 殿堂之路 孙颖 p311 -320
数据格式:文本、值对、二进制
要建立一个成功能通信请求,通信请求对象必须知道足够的信息--------请求对象、方式、数据等,
主要包括:1、请求的有效URL地址 2、请求方式(get or post)
读取文本数据例子(带注释核心代码部分)与读取对值对格式的例子(不带注释)
public class SampleXML extends Sprite
{
// private var title_txt:TextField ;
public function SampleXML():void
{
//var targetURL:String = "http://feeds.feedburner.com/Kingda";
// var targetURL:String = "test2.xml" ;
var targetURL:String = "test1.txt" ;
var reques:URLRequest = new URLRequest(targetURL);
var variables:URLLoader;
try
{
variables = new URLLoader();
}catch(err:Error)
{
trace("err");
};
variables.dataFormat = URLLoaderDataFormat.VARIABLES ;
variables.addEventListener(Event.COMPLETE ,completeHandle);
variables.addEventListener(ProgressEvent.PROGRESS ,test);
try
{
trace("loading ......");
variables.load(reques);
}
catch(error:Error)
{
trace("uable to load url");
}
/*
title_txt = new TextField();
title_txt.autoSize = "left" ;
addChild(title_txt);
*/
}
public function completeHandle(evn:Event):void
{
/* trace(evn.target.data is String);
var res:XML = new XML(evn.target.data);
var titlelist:XMLList = res.channel.item.title;
for each(var title:XML in titlelist)
{
title_txt.appendText("*" + title+"'\n");
trace (title.toString());
}
*/
trace(evn.target.data);
var loader:URLLoader = evn.target as URLLoader ;
var i:String;
for( i in loader.data)
{
trace(i+"\t:"+ loader.data[i] );
}
}
public function test(evn:ProgressEvent):void
{
trace(evn.bytesTotal + "\t" +evn.bytesLoaded);
// trace(evn.);
// loader.
if(evn.bytesLoaded >= 1024*1024)
{
trace("over");
}
}
}
读取二进制格式数据的例子
public class SampleBinary extends Sprite
{
private var loader:Loader ;
private var loader2:Loader;
public function SampleBinary():void
{
// var targetURL:String = "test2.xml" ;
var targetURL:String = "D:/OSMF/OSMFPlayer/bin/OSMFPlayer.swf" ;
var reques:URLRequest = new URLRequest(targetURL);
var variables:URLLoader;
variables = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.BINARY ;
variables.addEventListener(Event.COMPLETE ,completeHandle);
variables.addEventListener(ProgressEvent.PROGRESS ,test);
try
{
trace("loading ......");
variables.load(reques);
}
catch(error:Error)
{
trace("uable to load url"+error);
}
}
public function completeHandle(evn:Event):void
{
trace("loaded");
loader = new Loader();
var content:ByteArray = evn.target.data as ByteArray ;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE ,convertHandle);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,test2);
loader.loadBytes(content);
// trace(content);
loader2 = new Loader();
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,convertHandle);
loader2.loadBytes(content);
}
public function convertHandle(evn:Event):void
{
this.addChild(evn.target.loader as Loader);
evn.target.loader.y = 50;
evn.target.loader.x =200*Math.random() ;
// this.addChild(evn.target.loader2 as Loader);
// evn.target.loader2.y =100 ;
// evn.target.loader2.x = 50;
}
public function test(evn:ProgressEvent):void
{
// trace(evn.bytesTotal + "\t" +evn.bytesLoaded);
// trace(evn.);
// loader.
/*
if(evn.bytesLoaded >= 1024*1024)
{
trace("over");
}*/
// var loader:URLLoader = evn.target as URLLoader ;
//trace(loader.data);
}
public function test2(evn:ProgressEvent):void
{
trace(evn.bytesTotal + "\t" +evn.bytesLoaded);
}
}