[转] AS3自身下载代码

今天看了一下大家做的AS3自身下载代码,自己也动手做了一个。附加了源文件,大家可以下载使用。
如果使用可以直接修改 LloadMC的皮肤就可以了。
先上代码
核心代码
package {
        import flash.display.MovieClip;
        import flash.display.Stage;
        import flash.events.Event;
        import flash.events.ProgressEvent;
        import flash.text.TextField;
        import LoadMC;
        public class Get_load {
                var get_root_:Object;
                var loadmc:LoadMC=new LoadMC();
                /**
                下载接口API
                */
                public function call_load(get_root) {
                        //全局变量赋值
                        get_root_=get_root;
                        //停止SWF
                        get_root_.stop();
                        //开始下载
                        get_root_.loaderInfo.addEventListener(Event.COMPLETE,laod_complete);
                        get_root_.loaderInfo.addEventListener(ProgressEvent.PROGRESS,laod_progress);
                }
                /**
                下载过程
                */
                function laod_progress(ent:ProgressEvent) {
                        var tmp:Number=int(ent.target.bytesLoaded/ent.target.bytesTotal*100);
                        var res:String=tmp.toString()+'%';
                        //赋值给MC下载进度
                        loadmc.echo.text=res;
                        //动画形象表现
                        loadmc.gotoAndStop(tmp);
                        //给下载动画定位到舞台
                        get_root_.x=(get_root_.stage.width)/2;
                        get_root_.y=(get_root_.stage.height)/2;
                        get_root_.addChild(loadmc);
                }
                /**
                下载完毕
                */
                function laod_complete(ent:Event) {
                        get_root_.gotoAndStop(2);
                        //移除MC
                        get_root_.removeChild(loadmc);
                }
        }
}


接着是LoadMC的代码
package {
        import flash.display.MovieClip;
        import flash.text.TextField;
        public class LoadMC extends MovieClip {
                public function loadmc() {
                        var loadmc:LoadMC=new LoadMC();
                        loadmc.stop();
                        return loadmc;
                }
        }
}


文档类的调用方法
package {
        import flash.display.MovieClip;
        import Get_load;
        public class Doo extends MovieClip {
                var get_root_=this;
                public function Doo() {
                        var ga=new Get_load;
                        ga.call_load(get_root_);
                }
        }
}

希望大家多多指教




AS3的自身loading 是不推荐侦听  ProgressEvent.PROGRESS的(在FF下可能会失败)

仍然推荐和AS2时一样,在enterFrame中轮循

你可能感兴趣的:(Flash)