flash自身loading,很早就会做了。只是很久不做了。今天给公司的推广页面左一个loading的时候,发现侦听的 ProgressEvent.PROGRESS事件侦听不到。也就是侦听的进度只有100%。那该怎么解决这个问题呢,请看截图:
就是将链接这里,将”在第1帧中导出”前边的勾勾去掉就可以了。
悲剧,又发现了问题。在chrome浏览器下,获取的loaderInfo.bytesTotal  值为0.在ie下才是正常的。不知道是否在embed标签和object标签需要特殊处理。
下边还是贴出Code:Main.as
package com.vini123 { import flash.display.MovieClip; import flash.display.StageScaleMode; import flash.display.StageAlign; import flash.events.ProgressEvent; import flash.events.Event; import com.vini123.utils.share.ShareButton; public class Main extends MovieClip { private var shareButton:ShareButton; public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; addFrameScript(0 , frame1 , 1 , frame2); } private function frame1():void { stop(); this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler); this.loaderInfo.addEventListener(Event.COMPLETE , completeHandler); } private function progressHandler(e:ProgressEvent):void { var percent:Number = Math.round(1000 * (e.bytesLoaded / e.bytesTotal))/10; loading.percentTxt.text = percent; } private function completeHandler(e:Event):void { loading.bracelet.gotoAndStop(1); loading.visible = false; e.target.removeEventListener(ProgressEvent.PROGRESS,progressHandler); e.target.removeEventListener(Event.COMPLETE , completeHandler); nextFrame(); } private function frame2():void { shareButton = new ShareButton(); shareButton.x = 10; shareButton.y = stage.stageHeight - shareButton.height -5; addChild(shareButton); } } }
Bg.as
package com.vini123.view { import flash.display.MovieClip; import flash.events.Event; public class Bg extends MovieClip { public function Bg():void { addEventListener(Event.ENTER_FRAME , enterHandler); } private function enterHandler(e:Event):void { var frame:int = Math.round(100 * Math.random()); this.gotoAndStop(frame); } } }