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控件皮肤中,是非常有用的。
分享到:
相关推荐
局部线性嵌入(Locally linear embedding)1
最近在工作中进行了NLP的内容,使用的还是Keras中embedding的词嵌入来做的。 Keras中embedding层做一下介绍。 中文文档地址:https://keras.io/zh/layers/embeddings/ 参数如下: 其中参数重点有input_dim,output_...
局部线性嵌入(Locally Linear Embedding,LLE)也是非常重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的...
经过处理的腾讯中文词汇/短语向量 tencent-ailab-embedding-zh-d200-v0.2.0-s。包含使用方法和训练方法。
Summary of the de-embedding methods 去嵌入总结.pdf
HornetQ是java开源实现的消息系统框架,性能上比ActiveQ要好一些,被集成到JBoss的消息服务中。 Table of Contents Preface 1 Chapter 1: Getting Started with HornetQ 9 Chapter 2: Setting Up HornetQ 31 ...
In-Situ_De-embedding
词嵌入表示向量是自然语言处理的重要组成部分。最近来自牛津大学和DeepMind等撰写了关于上下文嵌入表示的综述论文,详述了当前预训练模型的代表性工作等。
一篇关于图嵌入(Graph embedding)的综述论文,欢迎大家下载学习。
heavy-load production systems as well as for embedding into mass-deployed software. MySQL is a registered trademark of MySQL AB. The MySQL software is dual licensed. Users can choose to use the MySQL ...
The Python Developer’s Handbook is designed to expose experienced developers to Python and its uses. Beginning with a brief introduction to the language and its syntax, the book moves quickly into ...
The Busy Coder's Guide to Android Development Android开发经典图书, 最新版8.2 apk 文件 更新说明: Added a chapter on the basics of using RxJava • Added a chapter on viewing PDFs, including embedding ...
具有层次注意隶属度的图嵌入_Graph Embedding with Hierarchical Attentive Membership.pdf
资源来自pypi官网。 资源全名:bert_embedding-1.0.0.dev1553007461-py3-none-any.whl
在基于条件随机场的中文命名实体识别任务中,现有表示学习方法学习到的特征存在语义表示偏差,给中文命名实体识别带来噪声。针对此问题,提出了一种基于位置敏感Embedding的中文命名实体识别方法。该方法将上下文...
Shikhar的博士毕业论文,题目为《Neural Graph Embedding methods for NLP》,这篇论文可中详述了他在GNN(尤其是GCN)领域的深入探索,并附有相应的源代码下载,做该方向的研究者可从他的thesis中得到大量启示,有...
大型图形数据库中相似性搜索的EmbAssi嵌入分配代价_EmbAssi Embedding Assignment Costs for Similarity Search in Large Graph Databases.pdf
NULL 博文链接:https://rensanning.iteye.com/blog/2199866
Embedding ProjectorEmbedding Projector 是一款用于交互式可视化和高维数据分析的网页工具,作为 TensorFlow 的一部分,能带来类似 A.I. Experiment 的效果。同时,谷歌也在 projector.tensorflow.org 放出了一个...