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

Flex中的嵌入资源(Embedding Assets)

    博客分类:
  • Flex
阅读更多

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控件皮肤中,是非常有用的。
  在Flex的很多组件,都有icon属性,在设计时对其设置后,在mxml代码里会产生如下代码:
        icon="@Embed('join.GIF')"
    而在某些时候,可能需要在mx script中动态改变icon属性,这个时候显示有些麻烦,比如设置一个Panel的icon属性,Panel.icon=null是可以正确去掉Panel的icon图片,而设置icon图片时,可以使用下面的办法:
    先加下面的代码,一个mxml文件里可以多个<mx:Script>标签。
    <mx:Script>
        <![CDATA[
            [Embed(source="join.GIF")]
            [Bindable]
            public var imgCls:Class;
        ]]>
    </mx:Script>
    然后就可以这样来设置Panel的icon属性了。
    Panel.icon=imgCls;
在按钮中嵌入icon图标有两种方法。第一种是在Flex应用中创建一个变量,利用[Bindable]和[Embed] ,在代码中以参数形式传入制定图标(icon)的路径,然后利用类似icon="{Icon}"的代码嵌入到按钮中。第二种是利用@Embed()和参数中指定图标的路径。
分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

    Keras—embedding嵌入层的用法详解

    然后,`Embedding` 层被实例化,其中 `embeddings_initializer` 参数设置为 `Constant`,传入填充好的嵌入矩阵,`trainable=False` 表示在训练过程中保持嵌入层的权重不变。 除了使用预训练的词嵌入模型,Keras 也...

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

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

    Flex4流程设计的学习

    在Flex中,我们常常需要与外部资源打交道,比如图片、音频、视频和字体等。这些资源的管理方式之一就是通过嵌入(Embedding Assets)到应用程序中。 嵌入资源的优势在于: 1. 提高性能:与运行时加载资源相比,嵌入...

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

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

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

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

    embedding理解.pdf

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

    myEmb_embedding_

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

    具有层次注意隶属度的图嵌入_Graph Embedding with Hierarchical Attentive Member

    《具有层次注意隶属度的图嵌入:Graph Embedding with Hierarchical Attentive Membership》 在计算机科学领域,特别是图论和数据挖掘方面,利用图结构有效地学习节点表示是至关重要的,因为这些表示能保留图中的...

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

    本文将深入探讨如何将 CordovaWebView 嵌入到自己的应用中,以及相关的知识点。 1. **Cordova 概述** Cordova 是一个开源的移动开发框架,通过创建一个跨平台的 WebView,让开发者可以使用 Web 技术(HTML、CSS 和...

    Reversible Data Embedding Using a Difference Expansion算法实现

    在数字图像处理领域,数据隐藏技术是一种重要的应用,它允许我们在图像中嵌入额外的信息而不引起明显的视觉变化。"Reversible Data Embedding Using a Difference Expansion"(基于差分扩展的可逆数据嵌入)算法就是...

    Embedding-8-8-block.rar_block 8 image_data embedding

    这种技术通常用于隐藏信息或者数据加密,比如在数字图像中嵌入隐藏的文本、元数据或其他敏感信息。在信息安全、数字水印和多媒体处理等领域有广泛应用。 描述中的"embedding data in image 8*8 block"进一步解释了...

    lle+matlab+代码-graph-embedding:只是一些图形嵌入资源的集合

    本资源集合主要关注局部线性嵌入(Locally Linear Embedding, LLE)在MATLAB环境中的实现,以及光谱图嵌入技术。 局部线性嵌入(LLE)是无监督学习的一种降维方法,由Roweis和Saul于2000年提出。它的核心思想是保持...

    Recommender systems based on graph embedding techniques

    本综述论文“Recommender systems based on graph embedding techniques”由电子科技大学的研究者撰写,全面回顾了图嵌入技术在推荐系统中的应用。论文分为三部分,分别探讨了二部图、一般图和知识图谱的嵌入技术在...

    词嵌入资源

    资源中的"word_embedding.py"可能是实现Word2Vec算法的Python脚本,它可能包含构建模型、训练、保存和加载模型等函数。这个脚本可能使用了诸如`gensim`这样的库,`gensim`是一个用于处理分布式内存的多维稀疏矩阵的...

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

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

Global site tag (gtag.js) - Google Analytics