Embed

本文详细介绍了在Flex软件中如何嵌入图片、声音等资源,包括嵌入资源的好处与弊端,以及不同方式的示例代码。同时探讨了如何在代码、CSS和MXML中使用@Embed标记,并解释了9切片缩放技术。
  Flex 软件中经常需要使用一些外部的资源,如图片、声音、SWF或字体,虽然你也可以在软件运行的时候引入和载入,但是也可能经常需要直接将这些资源编译(Compile)到软件中,也就是直接嵌入资源(Embedding Assets)。 Flex 中可以直接嵌入图片image,影片movie,MP3,和TrueType文字。
  [b]嵌入资源的利处: [/b]
  1、比起在运行时访问资源,对嵌入资源的访问速度更加快速;
  2、可以用简单的变量访问方式,在多个地方引用所嵌入的资源。这是变量就代表资源,提高写代码的效率;
  [b]嵌入资源的弊处: [/b]
  1、增大了SWF文件的大小,因为是将资源直接包含;
  2、由于SWF文件增大,将使得初始化的速度变慢;
  3、当资源改变后,需要重新编译SWF文件;
  例子1:一个简单的嵌入资源的例子:
  
  
  
  
  
  以上粗体部分,使用了@ Embed ()指令,将logo.gif这个图片直接嵌入到程序中,作为Button按钮的Icon图标。
  例子2:用变量引用嵌入的资源
  
  
  
  
  
   ADOBE FLEX 3 BETA 2
  
  
  以上粗体部分,表示将logo.gif图片嵌入,并让变量imgCls可以引用该资源。[ Bindable ]表示该变量imgCls是可以被数据绑定的。之后,就可以在多个地方引用该嵌入资源的变量(见红色粗体)。
  另外也可以通过 Embed ()指令, [b]在样式表中嵌入资源[/b][b] [/b],这通常是在设置UI组件的皮肤时候使用。如下代码:
  
  
  
  
  .myCustomButton {
  overSkin : [b]Embed[/b][b] [/b][b](source="overIconImage.gif");[/b][b] [/b]
  upSkin : [b]Embed[/b][b] [/b][b](source="upIconImage.gif"); [/b]
  downSkin : [b]Embed[/b][b] [/b][b](source="downIconImage.gif");[/b][b] [/b]
  }
  
  
  
  以上代码表示在按钮的常态(up)、鼠标悬停(over)、鼠标按下(down)的状态,使用不同的皮肤。 overSkin、 upSkin、 downSkin 是Button的对应状态下的皮肤属性。 [b]1、在代码中使用 Embed 标记 [/b]
  [b][Embed(source="../assets/hello.png")] [/b]
  [b]public var Hello:Class; [/b]
  [b]上面的代码声明了一个 Hello 类,但由于应用了 Embed 标记,所以编译后, 编译器会把资源与 Hello 类关联起来,并把 Hello 类生成为 mx.core.BitmapAsset 类的子类(根据资源的不同,将有不会同的父类),所以可以在代码中这样使用: [/b]
  [b]var myHello:Hello = new Hello() as BitmapAsset; [/b]
  [b]myHello.smooting = true; // smooting 属性为 BitmapAsset 类的属性 [/b]
  [b] [/b][b]2、代码 CSS 和 MXML 中使用 Embed 标记 [/b]
  [b]下面分别是在 CSS 和 MXML 中使用 Embed 标签的代码: [/b]
  [b]CSS: [/b]
  [b]Application { [/b]
  [b] backgroundImage:Embed(source="../assets/hello.png" ); [/b]
  [b]} [/b]
  [b]MXML: [/b]
  [b] [/b]
  [b] [/b]
  [b]上面的两段代码看起来 Embed 没有与相关的类关联,但我想 FLEX 编辑器把生成一个匿名类,然后把生成的类设置给属性或样式 [/b]
  [b] [/b][b]Embed 标记除了 source 参数外,还有其他参数,如果是图片资源,可以设置 scaleGridTop、scaleGridLeft、scaleGridRight、scaleGridBottom 四个参数,如果资源为 swf,可以设置 symbol 参数。 [/b]
  [b]scaleGridTop、scaleGridLeft 等参数是配制一种叫做 9 切片的缩放技术,就是把图片切成 9 块,如下图: [/b]
  
  [b](原图是[/b][b] [/b]
  
  [b] [/b][b],5 * 5 方格图,每个方格 4 个像素,上图是被放大后的效果) [/b]
  [b]上图在四条红线的位置把图片块成的 9 块,四个角,四条边和中间一块,在缩放的时候,四个角始终不变,两条横向边只缩放宽度,高度不变,两条纵向的边只缩放高度,宽度不变,中间一块宽和高同时 缩放,这就是 9 切片缩放的原理。使用这种技术一般是在使用图片做控件的皮肤时使用,很多控件的样式四个角是圆的或不规则的,所以使用这种缩放技术可以保证控件与图片的大 小不一致的时候,图片看起来也不变形。 [/b]
  [b]上面图片的交图对 Embed 标签的设置是: [/b]
  [b]Embed(source="../assets/msk.gif", scaleGridTop="4", scaleGridLeft="4", scaleGridRight="16", scaleGridBottom="16"); [/b]
  [b]symbol 属性配全 swf 资源一起使用,symbol 属性是设置为 swf 里面的 MovieClip 对象的名称,就是指定资源只使用 swf 中特定的 MovieClip 对象。 [/b]
  [b] [/b][b]看这两个例子: [/b]
  [b]1. [/b]
  [b]2. [/b]
  [b]区别在于: [/b]
  [b]#1中的1.png会被编译进入主swf从而增大发布文件的体积。[/b][b] [/b]
  [b]#2中的图片会在运行时被加载,图片不会被编译进入主swf。 [/b]
  [b]#1的优点是图片载入没有延时。 [/b]
  [b]#2的优点是节省swf体积,与普通html页面载入图片一样。 [/b]
  [b]所以根据需要善用好embed与url可以有效的控制我们主swf的大小。 [/b]
  [b] [/b][b]在[/b][b] [/b][b]Flex[/b][b] [/b][b]的很多组件,都有icon属性,在设计时对其设置后,在mxml代码里会产生如下代码: [/b]
  [b]icon="@[/b][b] [/b][b]Embed[/b][b] [/b][b]('join.GIF')" [/b]
  [b]而在某些时候,可能需要在mx script中动态改变icon属性,这个时候显示有些麻烦,比如设置一个Panel的icon属性,Panel.icon=null是可以正确去掉Panel的icon图片,而设置icon图片时,可以使用下面的办法: [/b]
  [b] 先加下面的代码,一个mxml文件里可以多个标签。 [/b]
  [b] [/b]
  [b] [/b]
  [b] [/b]
03-28
### 嵌入式技术或 Embed 功能概述 嵌入式技术(Embedding Technology)通常指的是通过某种算法将高维数据映射到低维空间的过程。这种技术广泛应用于自然语言处理、图像识别和其他机器学习领域。以下是关于嵌入式技术和编程中的 `embed` 功能的一些核心概念。 #### 什么是嵌入式技术? 嵌入式技术的核心在于将离散的数据表示转换为连续向量空间中的稠密表示。例如,在自然语言处理中,词嵌入(Word Embedding)是一种常见的应用形式,它能够捕捉词语之间的语义关系[^1]。常用的嵌入方法包括 Word2Vec、GloVe 和 BERT 等预训练模型。 #### 编程中的 Embed 函数 在许多现代框架中,`embed` 或类似的函数用于实现嵌入操作。例如,在 PyTorch 中可以通过定义一个嵌入层来完成这一过程: ```python import torch.nn as nn # 定义嵌入层 embedding_layer = nn.Embedding(num_embeddings=10000, embedding_dim=128) # 输入索引张量 input_tensor = torch.tensor([1, 2, 3]) # 获取嵌入后的向量 embedded_output = embedding_layer(input_tensor) print(embedded_output.shape) # 输出形状应为 (3, 128) ``` 上述代码展示了如何创建一个具有 10,000 个唯一单词和每词维度为 128 的嵌入矩阵,并将其应用于输入张量上[^2]。 #### 并行化与性能优化 当涉及大规模模型时,可以利用并行计算策略提高效率。其中一种方式是张量并行主义(Tensor Parallelism),即把单一层拆分至多个设备上运行。这种方法允许更大规模的模型被部署于有限硬件资源之上而不至于耗尽内存[^3]。 #### 应用场景举例 - **推荐系统**:通过对用户行为建模生成物品间相似度表征。 - **情感分析**:借助文本特征提取帮助判断评论倾向正面还是负面情绪表达。 - **翻译服务**:跨语言理解能力提升多国文化交流质量。 ### 结论 无论是支持开源软件API所提供的二进制兼容性解决方案还是针对海量代码库进行训练得到强大编码能力模型;亦或是采用水平分割法分配激活状态或者梯度张量给不同图形处理器单元以增强运算效能——这些都体现了当前计算机科学技术前沿发展成果对于解决实际问题所作出的巨大贡献。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值