[Flex]Flex中URLLoader加载xml文件和图片文件的代码示例
面这段代码的作用是 再不知道返回的是什么的时候。我们先把URLLoader请求到的进制数据通过ByteArray 转为字符串,进行判断类型
在项目遇到的问题,再不知道通过连接将请求到什么数据的时候,我们该如何处理,如果是图片如何只通过这一次请求,而不需要再去通过image.source=url请求。
下面示例中利用二进制形式转码赋予Image。
下面这段代码的作用是 再不知道返回的是什么的时候。我们先把URLLoader请求到的进制数据通过ByteArray 转为字符串,进行判断类型。
- private function onImageLoaded(e:Event):void {
- var _ba:ByteArray = e.target.data as ByteArray;
- var des:String = _ba.readMultiByte(_ba.length, "GBK");
- switch(des.charAt(0)){
- case "<":
- areaShow(des);
- case "{":
- areaShow(des);
- case "":
- areaShow(des); //酷播CuPlayer.com提示:上面这三种就可以知道
//是XML、或者JSON 等字符形式的。- break;
- default:
- byteToImage(_ba); //酷播CuPlayer.com提示:这里就能知道请求到
//的是图片。把ByteArray传递给方法,下面主要展示图片,xml.json就不多说了。- break;
- }
- }
- }
这里就是利用urlloader以二进制的方式先加载图片。然后在用loader加载byteArray。得到的loader.content其实就已经是bitmap了。
如果是单纯的图片(如PNG)直接用URLLoader就搞定了,没必要这么麻烦,如果是gif图片那么就得使用loader这个方法的基础上解码了.
- private function byteToImage(_ba:ByteArray):void{
- var _l:Loader = new Loader;
- _l.contentLoaderInfo.addEventListener (Event.COMPLETE, imageCompleteHandler);
- _l.loadBytes(_ba);
- loader.removeEventListener(Event.COMPLETE,onImageLoaded);
- loader = null;
- }
进行解码之后e.currentTarget.content就直接是 bitmap了,让它赋给图片就行了。
- private function imageCompleteHandler(e:Event):void{
- var img:Image=new Image();
- // img.addChild(e.currentTarget.content);
- img.source=e.currentTarget.content;
- }
热门文章推荐
- [flex]flex视频监控分区多屏播放器源代码
- [FLEX]Flex4制作Flv视频播放器
- [Flex]flex做的加载进度条loading源代码实例
- [Flex]浏览器chromeFlash安全沙箱有冲突错误的解决办法
- [Flex]as3.0检测当前摄像头状态(占用,没有,正常)三种状态
- [Flex]Flex截图功能的实现与代码实例
- [Flex]使用控件MenuBar添加一个菜单 在子菜单点击时执行事件
- [Flex]Flex数组的使用及定义方法中使用可变参数代码示例
请稍候...