📄 sampleloadswf.as
字号:
package org.kingda.book.display
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.display.LoaderInfo;
public class SampleLoadSWF extends Sprite
{
private const FILE_PATH:String = "fla/MotionXML.swf";
private const CLASS_NAME:String = "Ball";
private var loader:Loader;
private var request:URLRequest;
public function SampleLoadSWF() {
loader = new Loader();
request = new URLRequest(FILE_PATH);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
}
private function onComplete (event:Event):void {
var loadedSWFInfo:LoaderInfo = event.target as LoaderInfo;
var domain:ApplicationDomain = loadedSWFInfo.applicationDomain as ApplicationDomain;
//从加载的SWF域中提取类定义
var BallClass:Class = domain.getDefinition (CLASS_NAME) as Class;
var ballA:MovieClip = (new BallClass()) as MovieClip;
var ballB:MovieClip = (new BallClass()) as MovieClip;
ballA.x = 0,ballA.y = 100;
ballB.x = 100, ballB.y = 100;
ballB.scaleX = 2;
addChild (ballA);
addChild (ballB);
var loadedSWF:MovieClip = loadedSWFInfo.content as MovieClip;
trace(loadedSWF == loader.content);
//输出:true
//表明contentLoaderInfo.content与loader.content确实一样,指向被加载SWF主类对象
trace (loadedSWF.welcomeString);
//输出:哈哈,你访问到被加载的SWF脚本了。
//这说明访问到了MotionXML.swf主时间轴定义的 var welcomeString
//同理,也可访问其他子显示对象或其他脚本也是
addChild(loadedSWF); //将加载的SWF对象加入显示列表,这是才会在屏幕显示出来。
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -