`
hereson
  • 浏览: 1454539 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

利用反射调用另一个swf里的代码库(aswing例子)

阅读更多

或许我还是对flash了解不够深,虽然用它好多年了....还没有发现有更好的办法,例如flashDll,我就不知道怎么用才更好,可以达到他说的那样的可以使文件小很多。
他的做法是把很多在多个flash中使用的代码打包进一个swf里面去,然后给不同的swf调用,从而达到减小体积的目的。
但是我觉得即使是加载进行,但是在代码里进行了声明,最后还是会把代码编译进来,结果是体积还是没有减小.....(或许我这样说还是会有很多人不明白的.....具体看代码和效果吧)

程序代码 程序代码

package 
{
    import flash.display.Sprite;
    import flash.display.Loader;    import flash.events.Event;
    import flash.system.LoaderContext;
    import flash.net.URLRequest;
    import flash.system.ApplicationDomain;
    import flash.utils.getDefinitionByName;
    
    [SWF (width=800, height=600)]
    
    public class Main extends Sprite 
    {
        private var loader:Loader;
        public function Main() 
        {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader);
            loader.load(new URLRequest("dll/AsWingDLL_1_3_0.swf"), 
                    new LoaderContext(false, ApplicationDomain.currentDomain));
        }
        
        private function onLoader(event:Event):void
        {
            var mangerClass:Class = getDefinitionByName("org.aswing.AsWingManager") as Class;
            mangerClass["initAsStandard"](this);
            
            var frameClass:Class = getDefinitionByName("org.aswing.JFrame") as Class;
            var frame:Object = new frameClass(this,"测试反射");
            var paneClass:Class = getDefinitionByName("org.aswing.JScrollPane") as Class;
            var pane:Object = new paneClass();
            var aertClass:Class = getDefinitionByName("org.aswing.JTextArea") as Class;
            var art:Object = new aertClass();
            
            //增加多行文本
            pane["append"](art);
            frame["setContentPane"](pane);
            frame["setSizeWH"](400, 300);
            frame["show"]();
        }
    }
}


效果图


很明显,可以看到体积非常小,
当然,有个AsWingDLL_1_3_0.swf文件是200k的,当然,你也可以加载网络上的代码库

如果不利用反射,直接在flash里进行声明,那么代码会变得大很多,有心人可以重写onLoader方法里的代码。不利用反射,直接new对象

老规矩,还是给上源代码
下载文件 点击下载此文件

分享到:
评论

相关推荐

    AsWing 教程中文版

    创建AsWing项目的初始步骤包括使用FlexBuilder新建一个ActionScript项目,命名为"HelloScheme",并确保在库路径中包含了AsWing库或AsWing.swc文件。 在HelloScheme主类中,我们看到AsWingManager被用来初始化AsWing...

    初学aswing学习实用例子

    ASwing,全称为ActionScript Swing,是Adobe Flex SDK中的一个组件库,用于在ActionScript 3.0项目中创建桌面应用程序。它模仿了Java Swing API的结构和功能,为Flex开发者提供了一种创建桌面GUI(图形用户界面)的...

    AsWing AEON 皮肤实例

    AsWing AEON皮肤实例是针对AsWing框架的一个特定主题,主要涉及用户界面的定制化和美化。AsWing是一款流行的Java Swing开发库,它提供了丰富的组件和强大的功能,帮助开发者构建美观、高效的桌面应用程序。Aeon皮肤...

    aswing2.0 src

    ASwing2.0 SRC是一个针对ASwing库的源码版本,它为开发者提供了一种深入理解和定制ASwing的可能性。ASwing本身是一个ActionScript框架,它模仿了Java Swing的设计,为Flash和Flex应用提供了丰富的组件库,使得在这些...

    AsWing UI源码

    【AsWing UI源码】是一个面向AS3(ActionScript 3)开发者的UI库,提供了丰富的用户界面组件和工具,旨在简化AS3中的图形用户界面(GUI)开发。这个库不仅包含了完整的源代码,还附带了GUI编辑器,方便开发者设计和...

    Flash之pureMVC,aswing框架Libs文件

    - **简介**:AsWing是一个用于ActionScript 3的轻量级UI框架,设计目标是提供一个类似Java Swing的组件模型。它使开发者能够构建复杂的用户界面,同时保持代码的简洁性和可维护性。 - **组件体系**:AsWing提供了...

    aswing组件知识点

    `JMenuItem`是Swing提供的菜单项组件,在AsWing中,它不仅是一个组件,也是一个容器。它通常用来表示菜单中的可选项,并且可以有子菜单。`JMenuItem`可以与`JMenu`配合使用来构建菜单结构。此外,`JMenuItem`还可以...

    Aswing皮肤制作

    Aswing是一个轻量级的图形用户界面(GUI)库,它为Java开发者提供了一种创建美观、交互式的应用界面的方式。在这个教程中,我们将深入探讨Aswing皮肤的工作原理,以及如何通过一系列步骤来设计和应用自定义皮肤。 ...

    ASWING教程

    - **初识ASWING**:本节通过一个简单的“Hello 日程”应用,让开发者初步了解AsWing的基本使用方法,包括项目的搭建、基础组件的使用等。 #### 3. 创建主界面 - **规划主界面**:介绍如何规划和设计应用程序的主...

    aswing_a3_1.3.2_allinone

    "aswing_a3_1.3.2_allinone" 是一个特定的软件包或库的版本标识,其中包含了ASwing、A3以及1.3.2这些关键元素。ASwing可能是一个基于Java Swing的开源图形用户界面(GUI)框架,A3可能是该框架的一个子项目或组件,...

    aswing1.5+skinbuilder

    ASwing 是一个基于 Java Swing 的开源项目,它的版本1.5为我们带来了许多增强的功能和改进。Swing 是 Java 标准库中用于构建图形用户界面(GUI)的一部分,而 ASwing 则是对其的一种扩展,提供了更丰富的组件、更...

    flex 转成aswing 代码

    主要是解决aswing 换肤问题,用flex 生成的xml 转成对应的aswing代码

    aswing API

    aswing API,与AsWing Book.pdf一起使用

    Flash9下as3.0编程的aswing包

    ASwing包是专门为在Flash9环境下使用ActionScript 3.0(AS3.0)进行编程设计的一个辅助工具集。这个工具集旨在提供一个类似Java Swing的开发框架,使得AS3.0的开发者能够更加方便地创建复杂的交互式应用程序。在...

    aswing book 1.0aswing入门案例

    用实例讲述aswing的入门,用一个日程管理的例子,详细的讲述了aswing的开发过程,注意从Google下载aswing源代码的时候下载1.0的swc就可以了,flex环境

    asWing知识点

    - **JPanel**:在AsWing中,`JPanel`扮演着一个非常重要的角色,作为容器组件,它能够容纳其他GUI组件。在设置`JPanel`时,可以通过`setOpaque(boolean opaque)`方法来控制面板是否透明。 ### 2. JWindow与AsWing...

    aswing类库

    aswing类库的下载,可以让大家使用现成的布局来显示对象很简单很方便

    aswing更换皮肤实例2011

    在本文中,我们将深入探讨如何使用ASwing更换皮肤,这是基于Adobe Flash CS5.5和ASwing 2.0库的一个实例。ASwing是ActionScript 3.0中一个强大的UI组件库,它允许开发者创建出类似Java Swing的用户界面。在2011年的...

    AsWing Book.pdf

    AsWing Book.pdfAsWing Book.pdfAsWing Book.pdfAsWing Book.pdf

    ASWing实现中拖放

    ASWing实现中拖放是一项在图形用户界面(GUI)编程中常见的功能,它允许用户通过鼠标操作将一个对象从一处拖动到另一处,从而实现数据或组件的转移。ASWing是一个开源的Java库,它扩展了Swing框架,提供了更多的功能...

Global site tag (gtag.js) - Google Analytics