rite { public function MoxieAS () { var loader:URLLoader = new URLLoader(new URLRequest(”ttt.xml”)); // 测试 encode by ANSI loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, complete); }
private function complete (event:Event):void { var BA:ByteArray = new ByteArray; BA.writeBytes((event.target as URLLoader).data); BA.position = 0;
var xml:XML = XML(BA.readMultiByte(BA.length, “GBK”));
trace(xml.*); // output 测试 } } 感谢abc12hjc提供补充代码
具体用那个方式就看实际功能需求了。 3、URLRequest URLStream、URLLoader、Loader等读取外部数据的类,里的load方法参数值是URLRequest对象。我在编程过程总是喜欢直接写地址字符串,原来习惯改过来看样子要花点时间了。 4、Loader 在使用Loader来加载数据时,添加侦听事件时,注意一定要给Loader的 contentLoaderInfo属性增加事件,而不是给Loader对象增加事件。我就是因为加错对象(关键是编译时还没有报错),郁闷得差点要把电脑给扔了。 错误写法: var loader:Loader = new Loader(); loader.addEventListener(Event.COMPLETE, completeHandler); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
正确写法: var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
5、Loader加载过来的数据类型 大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。 如果加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象; 如果加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象; 如果加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象; 6、stage 在调试flash过程发现,如果把swf文件放到html页面后,stage.stageWidth和stage.stageHeight在第一次加载调用时,他们的值为空值; 7、 AVM1Movie 如果是AVM1Movie 对象时,就不能直接调用stop,play,gotoAnd |