`
lxc914_java
  • 浏览: 57505 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中的嵌入资源(Embedding Assets)——Swingguy摘译自Flex 3 Developer's Guide

阅读更多
      Flex软件中经常需要使用一些外部的资源,如图片、声音、SWF或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源编译(Compile)到软件中,也就是直接嵌入资源(Embedding Assets)。Flex中可以直接嵌入图片image,影片movie,MP3,和TrueType文字。

嵌入资源的利处:

1、比起在运行时访问资源,对嵌入资源的访问速度更加快速;

2、可以用简单的变量访问方式,在多个地方引用所嵌入的资源。这是变量就代表资源,提高写代码的效率;

嵌入资源的弊处:

1、增大了SWF文件的大小,因为是将资源直接包含;

2、由于SWF文件增大,将使得初始化的速度变慢;

3、当资源改变后,需要重新编译SWF文件;

例子1:一个简单的嵌入资源的例子:

<?xml version=”1.0”?>
<!-- embed\ButtonIcon.mxml -->
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”>
             <mx:Button label=”Icon Button” icon=”@Embed(source=’logo.gif’)"/>
</mx:Application>

以上粗体部分,使用了@Embed()指令,将logo.gif这个图片直接嵌入到程序中,作为Button按钮的Icon图标。

例子2:用变量引用嵌入的资源

<?xml version="1.0"?>
<!-- embed\ButtonIconClass.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
             <mx:Script>
                 <![CDATA[
                     [Embed(source="logo.gif")]
                     [Bindable]
                     public var imgCls:Class;
                 ]]>
             </mx:Script> ADOBE FLEX 3 BETA 2

             <mx:Button label="Icon Button 1" icon="{imgCls}"/>
             <mx:Button label="Icon Button 2" icon="{imgCls}"/>

以上粗体部分,表示将logo.gif图片嵌入,并让变量imgCls可以引用该资源。[Bindable]表示该变量imgCls是可以被数据绑定的。之后,就可以在多个地方引用该嵌入资源的变量(见红色粗体)。

另外也可以通过Embed()指令,在样式表中嵌入资源,这通常是在设置UI组件的皮肤时候使用。如下代码:

<?xml version="1.0"?>
<!-- embed\ButtonIconCSS.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
            <mx:Style> 
                .myCustomButton {
            overSkin:Embed(source="overIconImage.gif");
            upSkin:Embed(source="upIconImage.gif");
            downSkin:Embed(source="downIconImage.gif");
                }
            </mx:Style>
            <mx:Button label="Icon Button Style Def" styleName="myCustomButton"/>
</mx:Application>

以上代码表示在按钮的常态(up)、鼠标悬停(over)、鼠标按下(down)的状态,使用不同的皮肤。overSkin、 upSkin、downSkin是 Button的对应状态下的皮肤属性。

可嵌入的资源文件格式:
嵌入资源的语法:
根据嵌入位置的不同,语法也各不同:
1、[Embed(parameter1, paramater2, ...)] 元数据标签
           这主要在AS文件中,或MXML文件中的 <mx:Script>标签中使用。
2、@Embed(parameter1, paramater2, ...) 指令
           这主要在MXML标签中使用。
3、Embed(parameter1, paramater2, ...) 指令
           这主要在 <mx:Style> 样式表中使用。
根据情况的不同嵌入资源Embed的返回类型可以是Class或String。
对嵌入的图片资源进行9格缩放(9-slice scaling)
9格图就是把一个图片切分成9个格子,如图:
中间的5区为内容区,将正常缩放;1、3、7、9为角,不进行缩放;2、8将横向缩放;4、6将纵向缩放。
见代码:
<?xml version="1.0"?>
<!-- embed\Embed9slice.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        width="1200" height="600">
        <mx:Script>
            <![CDATA[
                [Embed(source="slice_9_grid.gif",
                   scaleGridTop="25", scaleGridBottom="125",
                    scaleGridLeft="25", scaleGridRight="125")]
                [Bindable]
                public var imgCls:Class;           
            ]]>
        </mx:Script>
   
        <mx:HBox>
            <mx:Image source="{imgCls}"/>
            <mx:Image source="{imgCls}" width="300" height="300"/>
            <mx:Image source="{imgCls}" width="450" height="450"/>
        </mx:HBox>
</mx:Application>
以上代码中,图片slice_9_grid.gif为30px * 130px大小。通过scaleGridTop、scaleGridBottom、scaleGridLeft、 scaleGridRight,上下左右分别留出了5px的边。放大后的结果如图:
以上的9格子方法在制作图片为背景的UI控件皮肤中,是非常有用的。
分享到:
评论

相关推荐

    Oracle Provider for OLE DB Developer's Guide.pdf

    《Oracle Provider for OLE DB Developer's Guide》是一本针对Oracle数据库与OLE DB接口开发的技术文档。本书详细介绍了如何通过OLE DB(Object Linking and Embedding, Database)访问Oracle数据库中的数据,并提供...

    pytorch中的embedding词向量的使用方法

    在PyTorch中,创建一个词嵌入层非常直接,只需调用`torch.nn.Embedding(m, n)`函数,其中`m`代表单词的总数,`n`代表词嵌入的维度。词嵌入本质上是一个参数化的矩阵,其大小为`[m, n]`,每行代表一个单词的嵌入向量...

    Flex4流程设计的学习

    这些资源的管理方式之一就是通过嵌入(Embedding Assets)到应用程序中。 嵌入资源的优势在于: 1. 提高性能:与运行时加载资源相比,嵌入的资源访问速度更快,因为它们在编译时就已经整合到SWF文件中。 2. 简化...

    Summary of the de-embedding methods 去嵌入总结.pdf

    去嵌入是指在测试结构中减去 pads 和 interconnect 的寄生效应,以获得真是的 DUT 数据。这是一个非常重要的步骤,对于 IC 设计师和工程师而言,能够获取纯净的 DUT 数据。 在本文中,我们将总结过去 20 年来提出的...

    局部线性嵌入(Locally linear embedding)1

    局部线性嵌入(Locally Linear Embedding) 局部线性嵌入(Locally Linear Embedding,LLE)是一种非线性降维算法,由 Sam T.Roweis 和 Lawrence K.Saul 于 2000 年提出并发表在《Science》杂志上。它能够使降维后...

    In-Situ_De-embedding.pdf

    3. VNA与S参数 矢量网络分析仪(VNA)是ISD技术的基础工具,它可以发射正弦波并调整频率,然后观察传输和反射波的频域响应。这些响应被归一化为散射参数(S参数)。S参数是描述多端口设备互作用的矩阵,其大小不超过...

    从Word2Vec到BERT:上下文嵌入 (Contextual Embedding) 最新综述论文.pdf

    当前文档提供了一篇综述论文的概述,该论文聚焦于上下文嵌入表示(Contextual Embedding)技术的最新发展。上下文嵌入表示是自然语言处理(NLP)领域的关键组成部分,其目标是通过将词或短语的含义与其上下文结合...

    Keras—embedding嵌入层的用法详解

    在自然语言处理(NLP)任务中,词嵌入是一种将词汇转化为连续向量表示的技术,使得计算机可以理解和处理文本数据。Keras 是一个高级神经网络 API,它提供了丰富的工具来构建和训练深度学习模型,其中包括 `Embedding...

    embedding理解.pdf

    ### 知识点详解:深度学习中的嵌入(Embedding)技术 #### 一、什么是嵌入(Embedding) 在深度学习领域,**嵌入**(Embedding)是指一种将离散变量映射到连续向量空间的方法。这种技术特别适用于处理分类数据,...

    局部线性嵌入(Locally Linear Embedding,LLE)(Python)

    局部线性嵌入(Locally Linear Embedding,LLE)也是非常重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的...

    基于PyTorch的Embedding和LSTM的自动写诗实验.zip

    基于PyTorch的Embedding和LSTM的自动写诗实验LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的...

    谈论AI 时被经常提及的“嵌入(embedding)”和“向量(Vector)”到底是个啥?.pdf

    ### “嵌入(embedding)”与“向量(Vector)”在AI领域的解析 #### 一、嵌入(Embedding) 在人工智能特别是自然语言处理领域,“嵌入”是指将符号化或非数值化的数据转化为数值化的表示形式的一种方法。通常...

    经过处理的腾讯中文词汇/短语向量 tencent-ailab-embedding-zh-d200-v0.2.0-s

    经过处理的腾讯中文词汇/短语向量 tencent-ailab-embedding-zh-d200-v0.2.0-s。包含使用方法和训练方法。

    图嵌入(Graph embedding)综述论文.zip

    图嵌入(Graph Embedding)是机器学习领域中一个重要的研究方向,特别是在数据挖掘、社交网络分析、推荐系统以及自然语言处理等应用中扮演着关键角色。它旨在将图中的节点和边转换为低维向量表示,这些向量不仅保留...

    把CordovaWebView嵌入到自己的应用(Embedding WebViews)

    3. **Embedding WebViews** 将 CordovaWebView 嵌入到自己的应用中,通常涉及以下步骤: - 引入 Cordova 的库:首先需要在项目的 build.gradle 文件中添加 Cordova 的依赖。 - 初始化 Cordova:在应用启动时,...

    Oracle Objects for OLE Developer's Guide 11g Release 2 (11.2) fo

    Oracle Objects for OLE Developer's Guide 11g Release 2 (11.2) 是针对Microsoft Windows平台的一份详尽的开发指南,旨在帮助开发者利用Oracle数据库与Microsoft Office应用程序进行集成和交互。这份文档由Oracle...

    myEmb_embedding_

    在IT领域,嵌入(Embedding)是一种将非结构化数据转换为低维向量空间中的数值表示的技术,常用于自然语言处理、图论和推荐系统等。在本项目"myEmb_embedding_"中,我们将探讨如何对网络数据,特别是用networkx库...

    C-C计算延迟时间和嵌入维数_计算延迟时间和嵌入维度_嵌入维度

    在Python中,有一些库如`pyeig`、`tisean`和`delay-embedding`等提供了实现C-C方法的工具,方便研究人员进行计算延迟时间和嵌入维度的工作。 总的来说,C-C计算延迟时间和嵌入维数是揭示时间序列内在动力学结构的...

    HornetQ Messaging Developer's Guide.pdf

    HornetQ是java开源实现的消息系统框架,性能上比ActiveQ要好一些,被集成到JBoss的消息服务中。 Table of Contents Preface 1 Chapter 1: Getting Started with HornetQ 9 Chapter 2: Setting Up HornetQ 31 ...

    Piecewise Flat Embedding for Image Segmentation

    文章标题《Piecewise Flat Embedding for Image Segmentation》指出了这篇文献研究的主要内容是为图像分割提出一种新的非线性嵌入方法——分段平坦嵌入(Piecewise Flat Embedding)。图像分割是计算机视觉中的一个...

Global site tag (gtag.js) - Google Analytics