flash自身loading,很早就会做了。只是很久不做了。今天给公司的推广页面左一个loading的时候,发现侦听的 ProgressEvent.PROGRESS事件侦听不到。也就是侦听的进度只有100%。那该怎么解决这个问题呢,请看截图:

就是将链接这里,将”在第1帧中导出”前边的勾勾去掉就可以了。

 

悲剧,又发现了问题。在chrome浏览器下,获取的loaderInfo.bytesTotal &nbsp值为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);
        }
    }
}