zoukankan      html  css  js  c++  java
  • [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"了。

  • 相关阅读:
    MEP工作流程
    一盘很大的棋
    老人棒子鸡
    REVIT多专业协同设计
    不做没有理想的咸鱼
    卫生间排风设计规范
    如何时刻保持在目标的正确轨道上
    OGame殖民
    OGame舰队保护(FleetSave, FS)
    在局域网内架ESS3.0升级服务器
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4519551.html
Copyright © 2011-2022 走看看