`

关于Embed外部资源的方法

    博客分类:
  • Flex
阅读更多

转自:http://hi.baidu.com/swingguy/blog/item/ff2f53589db71182800a18dd.html

 

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控件皮肤中,是非常有用的。
分享到:
评论

相关推荐

    HTML5 embed 标签使用方法介绍

    在实际使用中,`&lt;embed&gt;`标签可用于嵌入多种类型的外部资源,包括但不限于Flash动画(如`.swf`文件)、音频文件、视频文件和其他可以利用相应插件播放的内容。然而,由于现代网页设计中越来越多的使用了`&lt;video&gt;`和`...

    Go-go-embed-生成的Go代码来嵌入资源文件到你的库或可执行文件中

    `go-embed` 提供了一种简单而有效的方法来管理Go应用程序中的静态资源,使得程序更加健壮,同时减少了运行时的依赖。对于需要在多种环境中部署的应用,如嵌入式系统、Web服务器或命令行工具,这是一个非常实用的工具...

    embed使用,embed播放多媒体

    `embed`标签通常用于插入外部资源,例如: ```html &lt;embed src="path_to_your_media_file" width="320" height="240"&gt; ``` 这里的`src`属性指定了要加载的媒体文件的URL,`width`和`height`属性定义了媒体的显示...

    动态修改Embed的src属性

    在网页开发中,`&lt;embed&gt;` 标签用于嵌入外部资源,如音频、视频、插件等。本文将深入探讨如何动态修改 `&lt;embed&gt;` 元素的 `src` 属性,以及这样做带来的实际效果和应用场景。 动态修改 `src` 属性是网页交互中的常见...

    AS3 Embed用法

    取而代之的是,通过`Embed`标签可以将外部资源嵌入到AS3项目中,这种方式更加灵活高效。本文将详细介绍AS3 Embed的具体用法及其应用场景。 #### 二、Embed 基本概念 `Embed`是AS3提供的一种机制,用于将外部资源...

    Go-embed:另一个Golang静态内容嵌入器

    5. **性能和安全**: 使用`embed`意味着静态资源在运行时不需要外部访问,这提高了安全性,因为不需要担心文件系统的权限问题。同时,由于所有内容都在内存中,访问速度也相对较快。 6. **编译时检查**: 使用`embed`...

    embed embed

    embed标签是HTML中用于嵌入外部资源的元素,主要应用于网页中插入音频、视频等多媒体内容。由于HTML5的兴起,现在更多使用video和audio标签来处理多媒体,但embed仍然在某些场景下被使用,尤其是在兼容旧版浏览器时...

    Flex应用程序中嵌入各种类型的资源方法 源码

    以上内容涵盖了Flex应用程序中资源嵌入的基本方法和策略,包括不同类型的资源、嵌入技术、资源管理以及优化技巧。通过理解和实践这些知识点,开发者可以构建更高效、更灵活的Flex应用。提供的中文说明文档和代码将为...

    Laravel开发-embed

    在Laravel框架中,"embed"通常指的是媒体嵌入功能,允许开发者将外部资源,如视频、图片、音频等多媒体内容,以一种安全且可控的方式整合到应用中。本项目"laravel-development-embed"可能是一个扩展包或者库,旨在...

    Html 标签embed 动态显示

    在HTML中,`&lt;embed&gt;`标签是一个非常重要的元素,它允许我们嵌入外部资源,如音频、视频、Flash动画等,使得网页内容更加丰富多彩和动态。 `&lt;embed&gt;`标签的使用方式如下: ```html &lt;embed src="资源URL" width="宽度...

    html使用embed 播放flv 视频

    HTML中的`&lt;embed&gt;`标签是一种用于嵌入外部应用程序或资源的通用标签,它可以用来播放音频、视频、PDF、Flash动画等。在本案例中,我们关注的是如何使用`&lt;embed&gt;`标签来播放FLV(Flash Video)格式的视频。FLV是Adobe...

    rock embed schmatic

    通过上述分析,我们可以得出结论,这个原理图是关于嵌入式系统内部各个外设如何与主处理器进行通信的详细描述。文档中提供的信息有助于初学者了解嵌入式系统的设计和开发,尤其是对于那些希望开发基于Samsung S3C...

    apache-tomcat-5.5.17-embed.tar.gz

    使用这个精简版的Tomcat,开发者可以直接在代码中启动和停止Tomcat服务器,例如使用`Catalina.start()`和`Catalina.stop()`方法。此外,可以通过修改`context.xml`文件或者在代码中动态加载Web应用,实现应用程序的...

    de.flapdoodle.embed.mongo-1.44.zip

    无状态Future的使用可以避免线程阻塞,提高系统的响应速度和资源利用率。当我们创建一个Future时,我们实际上是在安排一个任务,这个任务会在后台线程执行,而主线程可以继续执行其他任务,等到Future完成时,我们...

    de.flapdoodle.embed.process-1.34.zip

    总结起来,"de.flapdoodle.embed.process"是一个用于测试环境的Java库,便于在内存中管理外部进程,而"JsonUnit"是一个强大的JSON断言工具,适用于测试JSON数据。两者都是开源项目,可以自由使用和贡献。"JsonUnit-...

    js改变embed标签src值的方法

    本文标题“js改变embed标签src值的方法”所介绍的是使用JavaScript来动态改变嵌入网页中的多媒体元素的源地址(src属性),具体是针对`&lt;embed&gt;`标签。 `&lt;embed&gt;`标签是HTML中的一个容器,可以用于嵌入各种外部应用...

    flex绑定资源文件1

    [Bindable]标记意味着该变量的改变会触发视图的更新,而[Embed]则用于将外部资源如图片嵌入到编译后的SWF文件中。例如,在资源类中,我们可以创建多个静态公共变量,每个变量都与一个图片文件关联: ```...

    apache-tomcat-8.5.72-embed.zip

    Tomcat使用它来管理数据库连接,提高应用的性能和资源利用率,避免频繁地打开和关闭数据库连接。 5. **tomcat-embed-websocket.jar**:此文件包含了Tomcat对WebSocket协议的支持。WebSocket是一种在客户端和服务器...

    python 开发解决打包使用pyecharts模块的程序十出现不显示图标的问题demo源码+使用说明.zip

    然后,通过内嵌或者外部引用的方式加载这些资源。在本地运行时,这些资源通常可以直接访问,但在打包后的环境中,静态文件路径可能发生变化,导致找不到资源。 解决这个问题的方法主要有以下几种: 1. **使用内置...

Global site tag (gtag.js) - Google Analytics