[ActionScript 3.0] 动态链接库

很多时候,我们为了项目和程序结构更加清晰,需要将发布好的swf放到一个固定的地方供主文件引用,这时就会出现发布好的swf所用的as类路径发生改变,为避免这个问题,需要用到动态链接库,以下做一个简单例子;

新建test.fla,作为需要加载的swf文件;新建Test.as,作为test.fla引用的as类,放在com.ysplib包下,新建main.fla作为加载

test.swf的程序主文件。

Test.as类:

 1 package com.ysplib

 2 {

 3     /**

 4       * ...

 5       * @author FrostYen

 6       */

 7     public class Test

 8     {

 9         public function Test()

10         {

11             trace("test");

12         }

13     }

14 }

在test.fla第一帧上写以下代码:

import com.ysplib.Test;

Test;//如果没在FLASH里出现过,编译的时候不会被编译进SWF中.

 

把发布好的包含Test.as类的test.swf放到lib文件夹下,然后在main.fla第一帧上写以下代码:

import flash.net.*;



import flash.events.*;



var ldr:Loader = new Loader  ;



ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);



ldr.load(new URLRequest("lib/test.swf"));



function onComplete(e:Event):void

{



    trace("Complete");



    var ClassReference:Class = ldr.contentLoaderInfo.applicationDomain.getDefinition("com.ysplib.Test") as Class;



    //("com.ysplib::Test") 与("com.ysplib.Test")效果一样



    new ClassReference  ;



}

 

发布main.fla会发现,已经trace出Test.as类的"test"了。

你可能感兴趣的:(actionscript)