`
nianshi
  • 浏览: 420561 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex3 快速入门(5):嵌入应用程序资源

    博客分类:
  • Flex
阅读更多

 

 可以在 Adobe® Flex™ 应用程序中嵌入各种类型的资源。 嵌入的资源被编译到 Flex 应用程序的 SWF 文件中。 它们不是在运行时加载的, 您并非必须使用您的应用程序部署原始资源文件。

提示: 嵌入资源的另一种方法是在运行时加载它们。 在运行时加载的资源必须使用您的应用程序进行部署, 因为它们没有被编译到您的应用程序中。 这具有保持 Flex 应用程序的文件大小更小和缩短其初始加载时间的优点。

可以嵌入具有 PNG、JPEG 和 GIF 文件格式的图像, SWF 文件, 具有 MP3 文件格式的声音文件, SVG 文件和字体。 下列主题描述如何嵌入这些资源:

图像 (多个实例)
图像 (单一实例)
使用 scale-9 拉伸的图像
用于与 CSS 和外观一起使用的图像
SWF 文件
SWF 库资源
声音文件
SVG 文件
字体


嵌入图像 (多个实例) 可以在 Flex 应用程序中嵌入具有 PNG、JPEG 或 GIF 文件格式的图像并创建它的一个或多个实例。

此示例使用 [Embed] 元数据标签在您的应用程序中嵌入图像并将它与可绑定的 ActionScript 类相关联。 接着它将 Image 控件的 source 属性绑定到 Logo 类。 可以将 Logo 类绑定到采用某个图像的任何组件属性, 比如 Button 控件的 icon 属性。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    viewSourceURL="src/EmbeddingImages/index.html"
    layout="horizontal" width="350" height="250"
>
   
    <mx:Script>
        <![CDATA[
            [Embed(source="assets/logo.png")]
            [Bindable]

            public var Logo:Class;           
        ]]>
    </mx:Script>

    <mx:Image id="myLogo" source="{Logo}"/>

    <mx:Image id="myLogo2" source="{Logo}"/>

</mx:Application>

结果

下载源代码

 嵌入图像 (单一实例)

可以使用线上 @Embed 指令在 Flex 应用程序中嵌入只希望显示一次的图像。

此示例将一个图像组件添加到一个应用程序中并使用其 source 属性中的 @Embed 指令。 若要在另一个 Image 控件中使用这一相同的图像, 则还必须将它嵌入到该组件中。 如果希望显示嵌入的图像的多个实例, 请使用 [Embed]元数据标签。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    viewSourceURL="src/EmbeddingAnImage/index.html"
    width="200" height="240"
>
    <mx:Image id="myLogo" source="@Embed('assets/logo.png')"/>

</mx:Application>

 

下载源代码

嵌入使用 scale-9 伸缩的图像

您可以将某个图像文件嵌入到您的 Flex 应用程序并以类似组件的方式智能地缩放它。 通过使用 scale-9 功能, 您的图像的四个角根本没有缩放, 水平边框仅在水平方向上缩放, 而垂直边框仅在垂直方向上缩放。 例如, 这对于以下情况很有用: 创建使用圆角的框, 或在您希望在缩放组件时保持边框清晰的位置进行组件样式调整。

此示例使用 Embed 元数据标签的 scaleGridTop、 scaleGridBottom、 scaleGridLeft 和 scaleGridRight 网格线位置属性来创建您的 scale-9 网格。

提示: 获得网格线位置的值的一种比较容易的方法是将指南与 Adobe® Photoshop® 中的 Rectangular Marquee 工具和 Info 选项板一起使用。

提示: 旋转嵌入的 scale-9 图像的实例会关闭该图像的 scale-9 以在将来进行任意大小转换。

示例
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    viewSourceURL="src/EmbeddingImagesScale9/index.html"
    layout="vertical" width="400" height="480"

>

    <mx:Script>
        <![CDATA[
            [Embed(
                source="assets/fancy_border.png",
                scaleGridTop="55", scaleGridBottom="137",
                scaleGridLeft="57", scaleGridRight="266"

            )]
           
            [Bindable]
            public var FancyBorderImage:Class;
        ]]>

    </mx:Script>

    <mx:Image source="{FancyBorderImage}" width="146" height="82"/>

    <mx:Image source="{FancyBorderImage}" width="266" height="150"/>
    <mx:Image source="{FancyBorderImage}" width="325" height="183"/>

</mx:Application>

结果

下载源码

 使用 CSS 为外观嵌入图像

您可以在 Flex 应用程序中嵌入图像并将它用于设置组件的外观。

您可以定义一个 CSS 类型选择器为给出类型的所有组件设置外观。 在此示例中, 您为 Button 控件创建了一个类型选择器。 类型选择器通过使用 Embed指定这些图像用作您的组件的外观属性。 您还可以定义一个类选择器来创建可作为样式应用到特定组件的自定义 CSS 类。

提示: 类选择器创建可用来设置单独的组件的样式的已命名样式类, 方法是通过使用 styleName 属性将类选择器分配给该组件。 类型选择器为给出类型的所有组件设置样式, 如下面的示例所示。

示例


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

>

    <mx:Style>
        Button
        {
            upSkin: Embed("assets/box_closed.png");

            overSkin: Embed("assets/box.png");
            downSkin: Embed("assets/box_new.png");

        }
    </mx:Style>
   
    <mx:Button/>
   
    <mx:Text text="Roll over and click the box!"/>

</mx:Application>

 

结果

 下载源代码

嵌入 SWF 文件

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

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

示例


<?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。

示例


<?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>

 

结果

下载源代码

嵌入声音文件

您可以在 Flex 应用程序中通过使用 [Embed] 元数据标签嵌入 MP3 文件并播放它。

注意: 记住嵌入的声音文件会成为您的应用程序 (最终的 SWF 文件) 的一部分, 而 MP3 文件会很大, 从而会使您的应用程序变得很大并会对应用程序的下载速度产生负面影响。

此实例将该 MP3 的一个新实例创建为一个 SoundAsset。它使用 SoundAsset 类的 play() 方法来播放 MP3 文件的实例, 并存储返回的 SoundChannel 对象, 从而您可以稍后调用 SoundChannel 对象的 stop() 方法以结束播放。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml " layout="vertical" horizontalAlign="center" verticalAlign="center" viewSourceURL="srcEmbeddingSoundFiles/index.html">

    <mx:Script>
        <![CDATA[
            import mx.core.SoundAsset;
            import flash.media.*;

            [Embed(source="assets/pie-yan-knee.mp3")]

            [Bindable]
            public var Song:Class;

            public var mySong:SoundAsset = new Song() as SoundAsset;
            public var channel:SoundChannel;
           
            public function playSound():void
            {

                // Make sure we don't get multiple songs playing at the same time
                stopSound();
               
                // Play the song on the channel
                channel = mySong.play();
            }
           
            public function stopSound():void
            {

                // Stop the channel, but only if it exists
                if ( channel != null ) channel.stop();
            }

        ]]>
    </mx:Script>
   
    <mx:HBox>
        <mx:Button label="play" click="playSound();"/>

        <mx:Button label="stop" click="stopSound();"/>       
    </mx:HBox>
   
    <mx:Text width="348" textAlign="center" color="#ffffff">

        <mx:htmlText>
            <![CDATA[<a href="http://derekaudette.ottawaarts.com/music.php">Pie-Yan-Knee Written and Performed by: Derek R. Audette © 2004 (Creative Commons Attribution License)</a>]]>
        </mx:htmlText>
    </mx:Text>
   
</mx:Application>

结果

下载源代码

 

嵌入 SVG 文件

可以将 SCG 文件嵌入到 Flex 应用程序中。

嵌入 SVG 文件与嵌入图像几乎是相同的。 差别在于您可以将嵌入的 SVG 文件的实例当作 Sprite 类的实例处理。 (它们实际上是 SpriteAsset 类的实例, SpriteAsset 类是 Sprite 类的子类。) 嵌入的 SVG 文件还保留它们的矢量属性, 且在被缩放或转换时不会显示像素。

注意: 不能在运行时导入 SVG 文件;仅可以在编译时在 Flex 应用程序中嵌入它们。

示例


<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml "
    layout="horizontal"
    viewSourceURL="srcEmbeddingSvgFiles/index.html"
    width="600" height="470"

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

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

    <mx:Image id="smallFrog" source="{SvgFrog}" width="128" height="130"/>

    <mx:Image id="largeFrog" source="{SvgFrog}"/>
</mx:Application>

 

结果

若要查看全部源代码, 请右键单击 Flex 应用程序并从上下文菜单中选择“查看源代码 ”。

提示: SVG 青娃图形是 Architetto Francesco Rollandin 创建的, 他慷慨地将它发布到 Open Clip Art Library 的公共区域中。 您可以在网站找到其他可免费使用和试验的 SVG 文件。
返回顶部


嵌入字体

您希望在 Flex 应用程序中嵌入一种字体并将它用作基于文本的组件的样式。

下面的示例创建引用嵌入的字体的 font-family 名称的一个类选择器。 接着它会创建一个 Text 控件并将其样式设置为该类选择器。

提示: 您在嵌入字体以节省文件大小时仅可以从字体添加某些字符, 方法是指定您的 @font-face 声明的 unicode-range 属性。

详细信息: 有关使用字体的详细信息, 请参阅 Flex 2 开发人员指南*中的“使用字体”。

示例


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

>

    <mx:Style>
        @font-face
        {
            font-family: Copacetix;

            src: url("assets/copacetix.ttf");
            unicode-range:
                U+0020-U+0040, /* Punctuation, Numbers */

                U+0041-U+005A, /* Upper-Case A-Z */
                U+005B-U+0060, /* Punctuation and Symbols */
                U+0061-U+007A, /* Lower-Case a-z */
                U+007B-U+007E; /* Punctuation and Symbols */

        }

        .MyTextStyle
        {
            font-family: Copacetix;
            font-size: 24pt;   
        }

    </mx:Style>

    <mx:Text styleName="MyTextStyle" text="Embedded fonts rock!" width="100%"/>

</mx:Application>

分享到:
评论

相关推荐

    Flex3入门,介绍性,适合未接触flex人群

    Flex3提供了丰富的工具和资源,帮助开发者快速入门。对于初次接触Flex的新手来说,理解以下概念非常重要: ##### 1. MXML - **定义**:MXML是一种基于XML的语言,专门用于构建Flex应用程序的用户界面。它简化了UI...

    flex入门到精通集合包

    这个“Flex入门到精通集合包”是一个全面的学习资源,涵盖了从基础到进阶的全套教程,旨在帮助学习者快速掌握Flex开发技能。 一、Flex基础知识 1. Flex框架:Flex框架包括Flex SDK和Flex Builder。SDK是免费的开发...

    【转帖】Flex 开发入门

    3. **Flex SDK**: Adobe Flex SDK 是一套免费的开发工具,包括编译器、库和文档,用于构建Flex应用程序。开发者可以使用SDK中的命令行工具或集成到IDE(如Flash Builder)中进行开发。 4. **Flex 构建工具**: Adobe...

    flex 入门教程 电子书

    总的来说,Flex入门教程将帮助你从零开始学习Flex,掌握创建富互联网应用的关键技能。通过深入学习和实践,你将能够构建出具有吸引力和功能强大的Web应用。无论是对于初学者还是有经验的开发者,Flex都是一个值得...

    flex4之语法入门

    5. **消除页面加载**:Flex 应用程序通常是一次加载全部框架,之后只加载所需的数据,有效减少了等待时间。 6. **标准的架构**:Flex 基于开放的标准和技术,如 XML 和 ActionScript,易于与其他系统集成。 7. **与...

    Flex技术入门之如何创建flex的web工程

    (5) **成熟的技术生态**:自Flex 1.0发布以来,经过多个版本迭代,Flex 4.0已相当成熟,丰富的网上资源和社区支持使得开发者可以快速上手并实现复杂功能。 **2. Flex技术的不足与应对策略** (1) **SWF文件大小**:...

    flex 入门必看资料

    3. **explorer.swf**:这是一个SWF文件,即ShockWave Flash文件,它是Flex编译后的可执行文件,包含实际的Flex应用程序。通过Flash Player或AIR运行时,用户可以在浏览器或桌面环境中运行这个SWF,体验Flex应用的...

    flex快速上手(中文)

    这个压缩包文件"flex快速上手(中文)"显然提供了中文版的学习资源,对于初学者来说是一份很好的教程资料。 Flex的核心组件包括Flex Builder(现已被Adobe Flash Builder取代)、Flex SDK和Flex Framework。Flex ...

    Flex入门视频教程

    Flex入门视频教程是一套专为初学者和有一定基础的学习者设计的教育资源,旨在帮助他们深入理解和掌握Adobe Flex这一强大的富互联网应用程序(RIA)开发框架。Flex是基于ActionScript和MXML,用于构建交互式、图形...

    《FLEX》入门教程

    总之,《FLEX》入门教程将引导初学者逐步了解并掌握FLEX的基本概念、开发流程和最佳实践,为构建富有吸引力和互动性的Web应用程序奠定坚实基础。通过不断学习和实践,你将能够利用FLEX的强大功能,创造出富有创新性...

    使用FLEX4.5开发手机应用程序.pdf

    Adobe Flex 4.5 是一个使用 Adobe Flash Builder 开发移动应用程序的平台,它让开发者能够在移动设备上开发高质量的应用程序,就像在桌面平台上一样。Flex 4.5 发行版扩展了现有的 Flex 组件到移动设备上,包括对...

    Flex入门学习教程

    Flex入门学习教程主要介绍了Adobe Flex,这是一种用于构建富互联网应用(RIA)的开发框架,它基于Flash Player。Flex不仅是一个工具,还包含了丰富的组件、样式、主题和编程语言,为开发者提供了强大的界面设计和...

    《Flex第一步》第二章PDF下载

    《Flex第一步》是针对Adobe Flex技术的一本入门教程,旨在帮助初学者快速掌握Flex的使用。第二章PDF的下载提供了一个深入学习Flex基础概念和应用的机会。在这一章中,我们将会探讨以下关键知识点: 1. **Flex简介**...

    flex英文帮助文档(非常详细)

    - **嵌入资产**:介绍了如何将图片、音频等资源嵌入到 Flex 应用中。 - **FXG 和 MXML 图形**:讲述了如何使用 FXG 文件或 MXML 代码来创建图形元素。 - **效果介绍**:讲解了 Flex 中的效果系统及其基本概念。 - **...

    Flex从入门到实践——源代码(11章)

    Flex是Adobe公司开发的一种用于构建富互联网应用程序(RIA)的框架,主要基于ActionScript和MXML语言。这个压缩包文件包含的是"Flex从入门到实践"教程的源代码,共11章,提供了深入学习Flex开发的实战示例。通过这些...

    Flex 4.6文档

    Flex 4.6是Adobe公司推出的一个用于开发丰富互联网应用程序(RIA)的开源框架。它基于Flash平台,支持跨平台部署,并提供了丰富的用户界面组件库以及强大的数据绑定和事件处理机制。 **1.2 开发入门** - **开始...

    smartrcp入门视频系列五(flex调用IE浏览器)

    Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序。在这个特定的教程中,重点可能是讲解如何利用SmartRCP(可能是一个集成开发环境或框架)来实现Flex与Internet Explorer的集成。 描述中的...

    flex study

    3. **通用的配置环境**:Flex 应用程序可以在各种平台和设备上运行,适应性强。 4. **企业级的特征**:Flex 支持安全、高性能的数据连接和企业级服务集成。 5. **消除页面加载**:通过数据缓存,减少与服务器的通信...

Global site tag (gtag.js) - Google Analytics