as3写的自身loading

来源:互联网 发布:博奥v17软件视频教程 编辑:程序博客网 时间:2024/06/15 02:51

 
在AS2里,我们要写一个自身loading很简单,一个_root.getBytesLoaded和一个_root.getBytesTotal就完了!可是在AS3里就没这么简单了,AS3有很多load函数,net包里有网络下载的,display包里有MC加载专用的loader,一时间找不到像AS2里的_root.getBytesLoaded和_root.getBytesTotal替代品.可是在做自身loading的办法,网上的牛人们已经找到了解决办法.
在这里讲讲核心思路,在帮助里看过mouseX和mousey的人都知道,帮助里都是这么写的stage.mouseX和stage.mouseY,还讲到stage可以当一个MC来用.既然stage可以当一个MC来使用,那我们只要将加载MC专用的loader用上就好了.最简单的,stage转成MC就可以了!
============================以下给出代码===================================================
import flash.display.Stage;
import flash.display.LoaderInfo;
import flash.events.ProgressEvent;
stop();
var loadtext=new TextField();
this.addChild(loadtext);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loading);//加载过程中的处理
this.loaderInfo.addEventListener(Event.COMPLETE,loadcomplete);//加载完成后的处理
function loading(event:ProgressEvent):void {
var loaded:Number=event.bytesLoaded/event.bytesTotal;
var n:int=loaded*100;
this.loadtext.text=n+"%";
}
function loadcomplete(event:Event):void {
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS,loading);
}
==========================================================================代码完结
核心代码就这么多,很简单,将stage转成MC就用了this.而loadinfo是为了取得加载目标的信息.在这里也就是自身的信息.
就这么简单.
转载请注明出自逍遥E站 http://www.xyflash.com/bbs/,本贴地址:http://www.xyflash.com/bbs/viewthread.php?tid=23845

 

 

  1. package{ 
  2.   import flash.display.*; 
  3.   import flash.events.*; 
  4.   public class main extends MovieClip{ 
  5.     public function main():void{ 
  6.       stop() 
  7.       //也可以使用addFrameScript给指定的帧添加代码 
  8.       //addFrameScript(1,frameScript) 
  9.       //调用加载脚本 
  10.       loadScript() 
  11.     } 
  12.     private function loadScript():void{ 
  13.       //as3中,所以的显示对象都可以使用loaderInfo来侦听加载状态 
  14.       //我们添加一个""Progress""和一个""complete"
  15.       root.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress,false,0,true) 
  16.       root.loaderInfo.addEventListener(Event.COMPLETE,init,false,0,true) 
  17.     } 
  18.     private function loadProgress(e:ProgressEvent):void{ 
  19.       //加载过程中会调用此函数 
  20.       //e.bytesLoaded/e.bytesTotal分别是已经加载字节跟总字节 
  21.       //需要显示进度可以在这里操作 
  22.       trace(e.bytesLoaded,e.bytesTotal) 
  23.     } 
  24.     private function init(e:Event):void{ 
  25.       //加载完成,我们跳到第二帧进行播放 
  26.       gotoAndStop(2
  27.       //操作代码.... 
  28.     } 
  29.     private function frameScript():void{ 
  30.       trace(""第二帧停止"") 
  31.       stop() 
  32.       //操作 
  33.     } 
  34.   } 
  35. }
原创粉丝点击