• flashDLL的AS3.0实现(转) - [flash游戏]

    2009-05-10

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://asfox.blogbus.com/logs/39162058.html

    最近专注项目的细化分工,协同开发。让项目开发更加规范化。在查找flashDLL的资料时。
    结果在猴子是blog里翻出来一个。

    此篇文章为《AS3.0 实现FLASH的"动态链接库"》的转发,原文章地址为:http://25swf.blogbus.com/logs/8299603.html

    原文摘要:

    因为以前是做.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中
    编译后得到包含有 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上]

    收藏到:Del.icio.us




    评论

  • - - 貌似没有转完整啊
    回复小镇说:
    咦~~ 是没转完!
    哎 还是手动转吧~~ ok了 现在!
    2009-05-11 12:57:36