AS3.0的Loader和URLRequest加载示例
在As3.0中, 加载外部图片/文本/XML/SWF/SWC可以说是家常便饭,一般地,我们习惯使用Loader和URLRequest来加载,其使用如下:
- class LoaderExample
- {
- private var loader:Loader;
- public function LoaderExample(){
- loader = new Loader();
- loader.load(new URLRequest("myswf.swf" ) );
- loader.loaderInfoContent.addEventListener(Event.COMPLETE, completeHandler);
- }
- public function completeHandler(e:Event):void
- {
- var target:* = e.target,content;(当load的是swf,
那么target为MovieClip类型,当为XML时,target则是XML类型.)- }
虽然这样的方法很简单,但并不是适用于每一种情况,我曾经试过,同样的代码,加载我的swf,运行正常,但到了第二天,我用flash IDE打开,enter+ ctrl测试影片却突然不确了,监听Complete和IOError都没有执行,搞了半天都不知什么情况,于是改用了二进制加载方法,也是本文重点介绍的。
- class LoaderExample
- {
- private var stream:URLStream;
- public function LoaderExample(){
- stream= new URLStream();
- stream.load(new URLRequest("myswf.swf" ) );
- stream.addEventListener(Event.COMPLETE, completeHandler);
- }
- public function completeHandler(e:Event):void
- {
- var target:* = e.target,content;(当load的是swf,
那么target为MovieClip类型,当为XML时,target则是XML类型)- }
哈哈,也很简单吧。当然URLStream 类提供的是对下载 URL 的低级访问。 数据一下载,便可随即为 ActionScript 使用,这和使用 URLLoader 时需要等到整个文件下载完不同。 并且 URLStream 类还允许在完成下载前关闭流。 已下载文件的内容将作为原始二进制数据提供。 在 URLStream 中的读取操作是非阻塞模式的。 这意味着您在读取数据之前必须使用 bytesAvailable 属性来确定是否能够获得足够的数据。 如果不能获得足够的数据,将引发 EOFError 异常。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例