| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
flash AS3脚本动态链接库的实现
  因为以前是做.net 的开发的,所以很习惯与 DLL 文件,觉得它异常方便,特别开发大型项目时,分成不同的DLL文件进行开发,不但节省了编译的时间,也使得程序结构更加完美. AS3中,写一类,代码如下:
package cw.DizhuAS3 

public class DizhuRules 

  public function DizhuRules() 
  { 
   trace("DizhuRules Create") 
  } 

}
新建一FLA[DizhuAS3.fla],写一帧写以下代码:
import cw.DizhuAS3.*;
DizhuRules;//这里还是和AS2一样,如果没在FLASH里出现过,编译的时候不会被编译进SWF中.
[size=+0][size=+0]
编译后得到包含有 DizhuRules 类的 DizhuAS3.swf 文件.我把他扔进一个叫LIB的文件夹里.再新建一FLA,尝试在第一帧写以下代码:
import flash.net.*; 
import flash.events.*; var myloader:Loader = new Loader(); 
myloader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLibLoaded); 
myloader.load(new URLRequest("LIB/" + "DizhuAS3" + ".swf")); 
function onLibLoaded(e:Event):void { 
trace("load compele"); 
var ClassReference: Class = myloader.contentLoaderInfo.applicationDomain.getDefinition("cw.DizhuAS3:: DizhuRules") as Class; //("cw.DizhuAS3::DizhuRules")  与  ("cw.DizhuAS3.DizhuRules") 效果一样 
new ClassReference(); 

编译运行,可以看得到 DizhuRules Create 被 trace了出来...
AS3引入了 applicationDomain ,使得被载入进来的swf 里的类与主swf的里都存在与不同的环境中,从而不会出现像AS2中的旧的被新的同名的类替换的后果[因为AS2里的类都是加在_global上  
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章