`
steely816
  • 浏览: 129402 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Event.INIT Event.COMPLETE 区别

阅读更多
   package{  
    import flash.display.*;  
    import flash.events.Event;  
    import flash.net.URLRequest;  
    public class LoadJPG extends Sprite{  
     private var myLoader:Loader;  
     public function LoadJPG(){  
      myLoader=new Loader();  
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeListener);  
     myLoader.contentLoaderInfo.addEventListener(Event.INIT,initListener);  
     myLoader.load(new URLRequest("fengjing.jpg"));  
    }//end of constructor function LoadJPG  
    private function completeListener(e:Event):void{  
     trace("This is from Event.COMPLETE listener");  
     trace(myLoader.content.width);  
     trace(myLoader.getChildAt(0).height);  
     trace(e.target.content.rotation);  
     trace("添加到显示列表前 : ",myLoader.numChildren);//1  
     addChild(myLoader.content);  
     trace("添加到显示列表后 : ",myLoader.numChildren);//0  
    }//end of function completeListener  
    private function initListener(e:Event):void{  
     trace("This is from Event.INIT listener");  
     trace(myLoader.content.width);  
     trace(myLoader.getChildAt(0).height);  
     trace(e.target.content.rotation);            
    }//end of function initListener  
   }//end of class LoadJPG   
  }//end of package  
 

例如,在加载影片或动画的第一帧时将调度 Event.INIT。然后,影片将可供访问并可添加到显示列表中。不过,下载完整的影片可能需要花更长的时间。只有在加载了完整的影片之后才会调度 Event.COMPLETE。

init 事件始终在 complete 事件之前。

访问用Loader加载进来的显示资源的时候,通常有3种办法,比如,myLoader是Loader类型的实例,要访问其加载的内容,可以这样:

1,myLoader.content;//直接访问实例的content

2,myLoader.getChildAt(0);//被加载的资源是myLoader的唯一孩子

3,e.target.content;//在侦听函数里面通过事件的目标对象访问

如果要为Loader添加侦听,必须通过Loader的实例变量contentLoaderInfo注册,contentLoaderInfo变量提供了对它装载资源的LoaderInfo对象的一个引用。而不能直接在Loader的实例上添加侦听!

以下代码简单展示了访问装载资源对象的方法和添加侦听的方法,有一个小疑惑啊,事件类型Event.COMPLETE和Event.INIT有什么区别,只知道前者是在加载结束之后触发,后者是在加载初始化后触发。牢记一点Event.COMPLETE永远发生的比Event.INIT晚 ,所以是不是在更多的情况下考虑使用Event.COMPLETE?

参考书对Event.INIT的解释如下

1, 对位图而言,实例化发生于当外部文件已经完全装载的时候。在那个时期,被装载的像素数据自动地被放置在一个BitmapData对象中,然后它被关联于一 个新的Bitmap对象,改Bitmap对象表示被装载的图像。(是不是对位图而言Event.INIT跟Event.COMPLETE是一样的?)

2,对于swf文件,实例化发生于当在帧1的所有资源和类(包括.swf的主类)已经被接收到的时候。在那个时期,ActionScript创建.swf主类的一个实例,并执行它的构造器。该主类实例表示被装载的.swf文件。

注 意,千万不要在初始化完成之前(Event.INIT触发之前)或者加载完成之前(Event.COMPLETE触发之前)试图访问被加载的资源。此时会 报错,如果用myLoader.content访问,content此时为空,如果用myLoader.getChildAt(0)访问则报错,错误 为:RangeError:Error #2006

当被装载的资源对象添加到一个新的DisplayObjectContainer中,被装载的资源自动从它原来的父亲容器Loader对象中移除!

 

分享到:
评论

相关推荐

    flex视频添加背景图片

    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); imageLoader.load(new URLRequest("path_to_your_image.jpg")); } private function onImageLoaded(event:Event):void { _...

    单个SWF文件loading加载详解

    `Event.INIT`表示加载已完成且内容已初始化,`Event.COMPLETE`表示整个加载过程结束,`ProgressEvent.PROGRESS`用于跟踪加载进度。 ```actionscript loader.contentLoaderInfo.addEventListener(Event.INIT, ...

    pano2VR二次开发接口(API)相关说明

    loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, finished_loading); // Tell the loader to call 'initHandler' after the swf is initialized. loader.contentLoaderInfo....

    AS3.0的加载机制

    3. **Event.INIT**:初始化事件,当开始加载SWF文件时触发。 4. **IOErrorEvent.IO_ERROR**:输入输出错误事件,当加载过程中出现错误时触发。 5. **Event.OPEN**:打开事件,当开始尝试加载资源时触发。 6. **...

    CS6打开歌词同步频谱播放器源码

    xmlLoader.addEventListener(Event.COMPLETE,xmlLoaderCompleteHandler); } private function xmlLoaderCompleteHandler(event:Event):void { xml=new XML(event.target.data); title=xml.song.@...

    swf预加载类

    1. **Event监听**:预加载类需要监听`Event.INIT`、`Event.PROGRESS`和`Event.COMPLETE`事件,这些事件在加载过程中触发,帮助我们掌握加载进度。 2. **Loader类**:AS3的`flash.display.Loader`类用于加载SWF或...

    flex解析xml文件

    2. `loadDriver(event:Event)`函数:这是处理`Event.COMPLETE`事件的回调函数。事件参数`event.target`指的是触发事件的对象,即`URLLoader`。我们通过`URLLoader.data`属性获取到加载的XML数据,并将其转换为`XML`...

    纯AS3下访问WebService方法总汇.txt

    loader.addEventListener(Event.COMPLETE, complete); loader.load(new URLRequest("http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=13800138000&userID=")); } ...

    AS3.0歌词同步频谱原码

    lrcLoader.addEventListener(Event.COMPLETE,loadCompleteHandler); stage.addEventListener(Event.ENTER_FRAME,soundPlayingHandler); this.addEventListener(Event.ENTER_FRAME,creatSpectrum); } ...

    Flash Loading源程序

    4. **事件处理**:在加载过程中,常见的事件有`Event.INIT`(表示加载项初始化完成)、`ProgressEvent.PROGRESS`(表示加载进度)、`Event.COMPLETE`(表示加载完成)和`IOErrorEvent.IO_ERROR`(表示加载错误)。...

    tweenjs.min.js文件

    .addEventListener("complete",a.onComplete))}var a=createjs.extend(AbstractTween,createjs.EventDispatcher);a._setPaused=function(a){return createjs.Tween._register(this,a),this},a.setPaused=createjs....

    总结flex各种用法

    urlLoader.addEventListener(Event.COMPLETE, completeHandler); } private function completeHandler(event:Event):void { var xml:XML = new XML(event.target.data); this.dg.dataProvider = xml.children();...

    flex 设置背景音乐

    channel.addEventListener(Event.SOUND_COMPLETE, playMusic); } } ``` - `musicArr`初始化:这里仅添加了一个音乐文件路径作为示例。 - `playMusic`方法:如果音乐列表不为空,则开始播放第一首音乐,并监听...

    Flex+Java Servlet文件上传实例

    2. `init()`函数用于初始化事件监听器,包括`ProgressEvent.PROGRESS`、`Event.SELECT`和`Event.COMPLETE`。`Security.allowDomain("*")`允许跨域访问。 3. `uploadFile()`函数展示了如何设置不同的文件过滤器,让...

    python3.6.5参考手册 chm

    Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python ...

    flex 4.5 播放器完善

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded); loader.load(new URLRequest("path_to_your_swf.swf")); private function swfLoaded(event:Event):void { var swfObject:DisplayObject ...

    原生js编写autoComplete插件

    event.target.classList.contains('auto-complete')) { this.index = -1; this.domInput.value = this.sSearchValue; document.querySelector('.auto-complete').remove(); } }.bind(this)); ``` ### 5. 结合...

    Javascript 实现 Excel 导入生成图表功能源码

    Papa.parse(reader.result, { delimiter: '\t', complete: (results) => { // 创建ECharts实例 const myChart = echarts.init(document.getElementById('main')); // 构建ECharts配置项 const option = { ...

    Sakemail

    :)26/3/981.6.1- Added a FUNCFileName private variable to manage the complete path of the attached file. I receive problems reports with this, it work now ?.- Reduced the line sleep to 30 (tell me if ...

Global site tag (gtag.js) - Google Analytics