Loader,用於加載外部的圖片和SWF文件。
如果加載圖片文件(jpg,gif,png等)時,Loader.content得到數據類型是Bitmap對象;
如果加載SWF文件(flash 9版本)時,Loader.content得到數據類型是MovieClip對象;
如果加載SWF文件(flash 9以前版本)時, Loader.content得到數據類型是AVM1Movie對象;
(2)URLLoader
以文本、二進制數據或URL編碼變量的形式從URL下載數據。在下載文本文件、XML或其它用於動態數據驅動應用程序的信息時,它很有用。 URLLoader對象會先從URL中下載所有數據,然後才將數據用於ActionScript。它會發出有關下載進度的通知,通過bytesLoaded和bytesTotal屬性以及已調度的事件,可以監視下載進度。 在加載非常大的視頻文件(如FLV的視頻文件)時,可能會出現內存不足錯誤。
(3)URLStream
提供對下載URL的低級訪問。數據一下載,便可隨即為應用程序使用,這和使用URLLoader時需要等到整個文件下載完不同。並且URLStream類還允許在完成下載前關閉流。已下載文件的內容將作為原始二進制數據提供。在URLStream中的讀取操作是非阻塞模式的。這意味著您在讀取數據之前必須使用bytesAvailable屬性來確定是否能夠獲得足夠的數據。如果不能獲得足夠的數據,將引發EOFError異常。 在默認情況下,所有二進制數據都是以Big-endian格式編碼的,並且最高位字節於第一位。
下面一個實例將被加載的配置文件以二進制數據讀取,這可以解決很多問題,比如對不同格式配置文件進行的處理
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLRequest; import flash.net.URLStream; import flash.net.URLLoader; import flash.utils.ByteArray; import flash.net.URLLoaderDataFormat; public class Test extends Sprite { public function Test(){ //testURLLoader(); testURLStream(); } private function testURLLoader():void { var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; //原始二进制数据 urlLoader.addEventListener(Event.COMPLETE, completeHandler); urlLoader.load(new URLRequest("02.xml:")); } private function completeHandler(event:Event):void { trace("配置文件是ANSI :" + event.target.data); // 如果配置文件是ANSI等,会出现中文字乱码 //URLLoader如果遇到乱码,则可以转换(利用标准的xml格式Excle可以解决乱码问题就是基于这里): var _byteArray:ByteArray = new ByteArray; _byteArray.writeBytes(event.target.data); _byteArray.position = 0; //如果是xml文档 var xml:XML = XML(_byteArray.readMultiByte(_byteArray.length, "chinese")); //简体中文 (GB2312) trace(xml); } private function testURLStream():void { var stream:URLStream = new URLStream(); stream.addEventListener(Event.COMPLETE, complete); stream.load(new URLRequest("02.xml")); } private function complete(event:Event):void { var stream:URLStream = event.target as URLStream; var xml:XML = XML(stream.readMultiByte(stream.bytesAvailable, "chinese")); //简体中文 (GB2312) trace(xml); } } }
沒有留言:
張貼留言