[转]flex中嵌入swf文件

本文介绍了如何在Flex应用程序中嵌入SWF文件及其库资源,包括使用[Embed]元数据标签来指定SWF文件及要嵌入的符号,并展示了通过不同方式引用SWF资源的方法。

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

[url]http://www.it118.org/specials/be5aa227-758a-4292-a143-5d0de10556fb/f1143eae-c0c6-487c-b903-397f1ea7a45a.htm[/url]

嵌入 SWF 文件与嵌入图像几乎是相同的。 差别在于您可以将嵌入的 SWF 文件的实例当作 MovieClip 类的实例处理。 (它们实际上是 MovieClipAsset 类的子类, MovieClipAsset 类是 MovieClip 类的子类。)

注意: 您无法直接访问嵌入的 SWF 文件的属性或方法。 但是, 您可以使用 LocalConnection 以允许它们进行通信。

例子1:

<?xml version="1.0" encoding="utf-8"?>  
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/EmbeddingSwfFiles/index.html"
layout="horizontal" width="290" height="290"
horizontalAlign="center" verticalAlign="middle"
>

<mx:Script>
<![CDATA[
[Embed(source="assets/hourglass.swf")]

[Bindable]
public var Hourglass:Class;
]]>
</mx:Script>

<mx:Image id="hourglass" source="{Hourglass}"/>
</mx:Application>

嵌入 SWF 库资源
您可以在应用程序中嵌入来自现有 SWF 库中的特定符号。 Flash 定义三种类型的符号: Button、MovieClip 和 Graphic。 您可以在 Flex 应用程序中嵌入 Button 和 MovieClip 符号, 但您不能嵌入 Graphic 符号, 因为无法为 ActionScript 导出 Graphic 符号。

此示例使用 [Embed] 元数据标签的 source 属性来指定包含您的库的 SWF 文件, 并使用 [Embed] 元数据标签的 symbol 属性来指定您要在该库中嵌入的符号的链接 ID。

例子2:

<?xml version="1.0" encoding="utf-8"?>  
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/EmbeddingSwfLibraryAssets/index.html"
layout="horizontal" width="450" height="240"
horizontalAlign="center" verticalAlign="bottom"

>

<mx:Script>
<![CDATA[
[Embed(source="assets/library.swf", symbol="BadApple")]

[Bindable]
public var BadApple:Class;

[Embed(source="assets/library.swf", symbol="Pumpkin")]

[Bindable]
public var Pumpkin:Class;

]]>
</mx:Script>

<mx:Image id="badApple" source="{BadApple}" width="150" height="151.8"/>

<mx:Image id="pumpkin" source="{Pumpkin}" width="150" height="131.7"/>


</mx:Application>

例子3:
下面的例子使用3个不同的标识符加载“assets/icons.swf”文件。每个资源都被赋予了不用的变量。这样即使使用同一个SWF文件,它们也能很容易的引用独立的资源。

<?xml version="1.0" encoding="utf-8"?>  
<!-- http://blog.flexexamples.com/2007/07/25/embedding-assets-from-swf-files/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white">

<mx:Script>
<![CDATA[
[Bindable]
[Embed('assets/icons.swf', symbol='bulletCheck')]
private static var BULLET_CHECK:Class;

[Bindable]
[Embed('assets/icons.swf', symbol='bulletCritical')]
private static var BULLET_CRITICAL:Class;

[Bindable]
[Embed('assets/icons.swf', symbol='bulletWarning')]
private static var BULLET_WARNING:Class;
]]>
</mx:Script>

<mx:Button id="checkBtn" label="Check" icon="{BULLET_CHECK}" />
<mx:Button id="warningBtn" label="Warning" icon="{BULLET_WARNING}" />
<mx:Button id="critcalBtn" label="Critical" icon="{BULLET_CRITICAL}" />

</mx:Application>

你也可以重构一下代码,使它看起来跟优雅。把Embed标签和各种变量移到一个独立的ActionScript文件中,就像下面这样。

Images.as:

package  
{
public class Images
{
[Embed('assets/icons.swf', symbol='bulletCheck')]
public static const BULLET_CHECK:Class;

[Embed('assets/icons.swf', symbol='bulletCritical')]
public static const BULLET_CRITICAL:Class;

[Embed('assets/icons.swf', symbol='bulletWarning')]
public static const BULLET_WARNING:Class;
}
}



<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/07/25/embedding-assets-from-swf-files/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white">

<mx:Button id="checkBtn" label="Check" icon="{Images.BULLET_CHECK}" />
<mx:Button id="warningBtn" label="Warning" icon="{Images.BULLET_WARNING}" />
<mx:Button id="critcalBtn" label="Critical" icon="{Images.BULLET_CRITICAL}" />

</mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值