自定义Flex Library的使用

本文介绍如何使用Flex库实现资源及组件共用,并通过实例演示如何创建Flex库项目、编译库文件并将其集成到应用程序中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般为了达到资源或是组件的共用,会用到flex library。在flex library可以添加swf、图片资源或的引用。

使用方法:

在flash builder中右击选中“新建” –> “Flex Library Project”

image

输入工程名后,直接点击“Finish”,然后建立一个类。

image

在该类中,绑定指定的资源,如下代码所示:

package
{
[Bindable]
public class LibraryTest
{
public function LibraryTest()
{
}

[Embed(source="pic/test.png")]
public var abc:Class;
}
}
 
右击项目,选择“Properties(属性)”后,选中左侧“Flex Library Compiler”选项,在右侧窗口的“Additional compiler arguments”中追加
“-directory=true -output=../bin/”,点击“OK”,应用设置。
 
右击选中项目,点击“Build Project”即可编译该Library Project,之后可在bin目录下得到三个文件。

image

 

三个文件:“xxxx.swc、catalog.xml、library.swf”,其中xml是描述文件,swc可直接copy至工程的libs目录中使用,swf则需要在相应的类中加载后才能使用。

 

新建一个项目,用来测试上面生成的library.swf。

image

getClass.mxml的代码,下面代码中声明了一个变量bit1,为什么要声明这样一个“多余”的变量呢?如果使用swc并不需要这样做,而加载library.swf,因为在执行build project的时候,有一些类并未打包到library.swf中,所以在需要调用的程序中,需要加载这相应的类(比较上面的是图片对应的就是BitmapAsset)。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" minWidth="955" minHeight="600" creationComplete="inited()">

<mx:Script>
<![CDATA[
import mx.core.BitmapAsset;
import mx.core.UIComponent;

private function inited():void
{
var bit1:BitmapAsset;

var loader:Loader = new Loader();

var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
var req:URLRequest = new URLRequest("assets/library.swf");

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

loader.load(req, context);
}

private function onComplete(evt:Event):void
{
trace("library.swf--- loaded --- succ");

var cl:Class = ApplicationDomain.currentDomain.getDefinition("LibraryTest_abc") as Class;

var a:DisplayObject = new cl() as DisplayObject;

var ui:UIComponent = new UIComponent();
ui.addChild(a);

img.source = cl;

ui.x = 100;
ui.y = 200;

addChild(ui);
}

]]>
</mx:Script>

<mx:Image id="img" />

</mx:Application>

运行程序,可以看到图片资源均被加载了,使用了对该资源的统一管理(swf的用法与此类似)。

image

 

更多参考:

1、使用ApplicationDomain类

2、上面两个示例的源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值