在文档类里面如果控制flash出现loading?这个问题弄得我自己忽然没有方向了,呵呵,加载外部的大家都会,都知道,加载自己就有点晕了。
制作loadin最少需要两帧,这是需要注意的地方,了解loading原理的朋友应该知道.
第一帧为loading动画
第二帧后为你的内容
下面的代码假设flash有两帧:
一开始的时候自动停止第一帧,然后进行loading操作,
需要显示进度可以在loadProgress里写你需要的操作,
加载完后自己跳到第二帧,并停止,
注意的是在main函数里,使用了addFrameScript给动画的第二帧添加了stop()代码,
这里不是必须的,addFrameScript是一个隐藏函数,这里只是测试一下(ps一下,addFrameScript中,前面是帧数,后面是要加载的函数,帧数是从0开始的).
- package{
- import flash.display.*;
- import flash.events.*;
- public class main extends MovieClip{
- public function main():void{
- stop()
- //也可以使用addFrameScript给指定的帧添加代码
- //addFrameScript(1,frameScript)
- //调用加载脚本
- loadScript()
- }
- private function loadScript():void{
- //as3中,所以的显示对象都可以使用loaderInfo来侦听加载状态
- //我们添加一个"Progress"和一个"complete"
- root.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loadProgress,false,0,true)
- root.loaderInfo.addEventListener(Event.COMPLETE,init,false,0,true)
- }
- private function loadProgress(e:ProgressEvent):void{
- //加载过程中会调用此函数
- //e.bytesLoaded/e.bytesTotal分别是已经加载字节跟总字节
- //需要显示进度可以在这里操作
- trace(e.bytesLoaded,e.bytesTotal)
- }
- private function init(e:Event):void{
- //加载完成,我们跳到第二帧进行播放
- gotoAndStop(2)
- //操作代码....
- }
- private function frameScript():void{
- trace("第二帧停止")
- stop()
- //操作
- }
- }
- }