Flex项目页面加载时引用Flash制作的进度动画
发布时间:2020-12-15 03:52:09 所属栏目:百科 来源:网络整理
导读:Flex加载页面时,进度条根据加载页的数值变化,显示以上的效果。 as层的代码如下: var rectCacheHeight:Number=rectProgress.height;rectProgress.height=12;invertBG.mask=invertMask_mc; //达到倒影效果,invertMask_mc是渐变的形状块//函数preloading的两
Flex加载页面时,进度条根据加载页的数值变化,显示以上的效果。 as层的代码如下: var rectCacheHeight:Number=rectProgress.height; rectProgress.height=12; invertBG.mask=invertMask_mc; //达到倒影效果,invertMask_mc是渐变的形状块 //函数preloading的两个参数str_loaded,str_total分别是当前进度数,总加载数 //是用来读取Flex项目中setDownloadProgress函数的两个参数complete与total function preloading(str_loaded:Number,str_total:Number){ var rectProgress_height:Number=Math.floor((str_loaded*rectCacheHeight)/str_total); rectProgress.height=rectProgress_height; } 然后在库栏中,把此影片剪辑导出为PopoProgress.SWC文件,并引入到Flex项目的libs库中 注:库栏中,导出的SWC的名称与该影片剪辑的名称要一样,否则,Flex引用不了。( 待验证) 在Flex中新建ActionStript类文件,DownLoadProgressBar.as package { import flash.events.Event; import flash.events.ProgressEvent; import mx.preloaders.SparkDownloadProgressBar; //继承SparkDownloadProgressBar类 public class DownLoadProgressBar extends SparkDownloadProgressBar { private var spreLoader:PopoProgress; //spreLoader定义为PopoProgress类型 public function DownLoadProgressBar() { super(); } override protected function initCompleteHandler(event:Event):void{ dispatchEvent(new Event(Event.COMPLETE)); }//初始化完成后执行的事件,既是加载进度结束后打开的主页面事件 override protected function createChildren():void{ if(!spreLoader){ spreLoader=new PopoProgress(); var sX:Number=Math.round((stage.stageWidth-spreLoader.width/2)/2); var sY:Number=Math.round((stage.stageHeight-spreLoader.height/2)/2); spreLoader.x=sX; spreLoader.y=sY; spreLoader.scaleX=spreLoader.scaleY=1.5; this.addChild(spreLoader); } }//用来判断spreLoader对象有没有添加,定义了位置与大小 override protected function showDisplayForInit(elapsedTime:int,count:int):Boolean{ return true; } override protected function showDisplayForDownloading(elapsedTime:int,event:ProgressEvent):Boolean{ return true; } override protected function setDownloadProgress(completed:Number,total:Number):void{ spreLoader.preloading(completed,total); } //这里就是引用了spreLoader.preloading的方法,读取complete与total数值,从而使Flash动画的进度条变化 override protected function setInitProgress(completed:Number,total:Number):void{ //设置初始化进度 } override protected function initProgressHandler(event:Event):void{ //设置初始化进度事件 } } } 最后在主程序中<s:Application 添加属性preloader="包地址.DownLoadProgressBar" .... ?usePreloader 指是否使用加载页面的动画,默认是true 此文是参考了以下两篇案例: http://www.adobe.com/cn/devnet/flex/articles/flex-custom-preloader.html http://www.ckplayer.com/bbs/forum.php?mod=viewthread&tid=10 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |