Flex框架:RSL和主程序(swf)是并行下载的?
发布时间:2020-12-15 05:11:08 所属栏目:百科 来源:网络整理
导读:? ?Flex框架:RSL和主程序(swf)是并行下载的吗? 用下面的代码来验证: 自定义进度条,重写全部六个加载过程的监听函数,再重写的每个函数中把信息写入变量中,然后看变量的内容来确定各个监听函数的调用顺序: ProgressEvent.PROGRESS,progressHandler);
?
?Flex框架:RSL和主程序(swf)是并行下载的吗? 用下面的代码来验证: 自定义进度条,重写全部六个加载过程的监听函数,再重写的每个函数中把信息写入变量中,然后看变量的内容来确定各个监听函数的调用顺序: ProgressEvent.PROGRESS,progressHandler); Event.COMPLETE,completeHandler); RSLEvent.RSL_PROGRESS,rslProgressHandler); RSLEvent.RSL_COMPLETE,rslCompleteHandler); RSLEvent.RSL_ERROR,rslErrorHandler); FlexEvent.INIT_PROGRESS,initProgressHandler); FlexEvent.INIT_COMPLETE,initCompleteHandler);
Main.mxml <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" preloader="Preloader" minWidth="955" minHeight="600"> </s:Application>
Preloader.as package { import flash.events.Event; import flash.events.ProgressEvent; import mx.events.RSLEvent; import mx.preloaders.SparkDownloadProgressBar; public class Preloader extends SparkDownloadProgressBar { private var txt:String = ""; public function Preloader() { super(); } override protected function completeHandler(evt:Event):void { txt+="completeHandler"+"nt"; super.completeHandler(evt); } override protected function rslCompleteHandler(evt:RSLEvent):void { txt+="rslCompleteHandler"+"==" + evt.bytesLoaded + "==" + evt.bytesTotal + "nt"; super.rslCompleteHandler(evt); } override protected function initCompleteHandler(evt:Event):void { txt+="initCompleteHandler"+"nt"; dispatchEvent(new Event(Event.COMPLETE)); //在此处打断点,通过Debug的形式来查看txt的值 } override protected function progressHandler(evt:ProgressEvent):void { txt+="PH"+"==" + evt.bytesLoaded + "==" + evt.bytesTotal + "nt"; super.progressHandler(evt); } override protected function rslProgressHandler(evt:RSLEvent):void { txt+="rslPH"+"==" + evt.bytesLoaded + "==" + evt.bytesTotal + "nt"; super.rslProgressHandler(evt); } override protected function initProgressHandler(evt:Event):void { txt+="initProgressHandler"+"nt"; super.initProgressHandler(evt); } } }
>>通过Debug得到的结果如下(为查看方便,把连续的相同项做了删除) 可以得出如下结论: (1)主程序(swf)一下子就下载完了,然后RSL才开始下载。 -->结果看起来虽然是这样,从源代码分析会是如何呢 (2)ProgressEvent.PROGRESS事件反映的是主程序(swf)和RSL合起来的进度信息,而并非只反映其中一项 (3)事件【Event.COMPLETE(全部下载完成后发出的事件)】的确如其定义的那样
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |