`

加载并调用swf中的MovieClip

阅读更多
原理很简单:
1 将swf加载到某个ApplicationDomain中。
2 从该ApplicationDomain中拿到Class。
3 实例化Class,并控制其播放和停止。

具体操作:
1 实例化 URLRequest 请求 URL。
2 实例化 LoaderContext 设置 ApplicationDomain。
3 Loader 加载 swf。
4 getDefinition("类名") 获取 Class。
5 实例化并使用。

package sz.projectOne {
	import flash.utils.setTimeout;
	import flash.display.Loader;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;

	/**
	 * @author dengyang
	 * @date 2010-7-6
	 */
	public class LoadSwfDemo extends Sprite {

		public function LoadSwfDemo() {
			var floatLoader : Loader = new Loader();

			floatLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFloatOver);
			floatLoader.load(new URLRequest("未击中.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
		}

		private function loadFloatOver(_evt : Event) : void {
			var miss : Class = ApplicationDomain.currentDomain.getDefinition("action.text.miss") as Class;
			var a : MovieClip = this.addChild(new miss()) as MovieClip;
			a.x = 100;
			a.y = 100;
			stop();
			function play() : void {
				a.play();
				setTimeout(stop, 2000);
			}
			function stop() : void {
				a.stop();
				setTimeout(play, 2000);
			}
		}
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics