2016-10-13 00:16:48 点击量:6 标签: 收藏本文
在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 异常。
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室