转自:http://blog.163.com/jtyp_2000/blog/static/9910426201172603448553/
原理:
在SDK的编译参数中加入-frames.frame [label] [className]添加第二帧
这样实现自加载就是FLASH中常用的2帧法了。
示例:
PreloaderDemo.as
- package
- {
- import flash.display.DisplayObject;
- import flash.display.MovieClip;
- import flash.events.Event;
- import flash.events.ProgressEvent;
- import flash.utils.getDefinitionByName;
- /**
- * 预加载类 程序从这里开始
- * @author Jing
- */
- public class PreloaderDemo extends MovieClip
- {
- public function PreloaderDemo()
- {
- loaderInfo.addEventListener(ProgressEvent.PROGRESS,progress);
- loaderInfo.addEventListener(Event.COMPLETE,complete);
- }
- //显示进度
- private function progress(e:ProgressEvent):void
- {
- trace(e.bytesLoaded / e.bytesTotal);
- }
- private function complete(e:Event):void
- {
- loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progress);
- loaderInfo.removeEventListener(Event.COMPLETE,complete);
- gotoAndStop(2);
- var mainClass:Class = Class(getDefinitionByName("MainDemo"));
- stage.addChild(new mainClass() as DisplayObject);
- parent.removeChild(this);
- }
- }
- }
- MainDemo.as
-
- package
- {
- import flash.display.Sprite;
- public class MainDemo extends Sprite
- {
- //嵌入一个文件以显示加载效果
- [Embed(source="SQL006_ch9.wma", mimeType="application/octet-stream")]
- private var SomeClass:Class;
- public function MainDemo()
- {
- }
- }
- }
-
编译参数:
-locale zh_CN -use-network=false -frame MainDemo MainDemo
重点是加粗红色部分,将MainDemo类作为程序的第二帧进去
-frames.frame FrameTwoClass FrameTwoClass