`

[转]Flex Embed嵌入资源 mimeType设置 9宫格

    博客分类:
  • FLEX
阅读更多
http://blog.sina.com.cn/s/blog_6b00c6a10100lngx.html

[Embed(source = "training.xml",mimeType = "application/octet-stream")]

1. 用[Embed]元数据标签可以嵌入GIF,PNG,JPEG,或者MP3文件。ActionScript代码的顺序非常重要。你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Class。如下:
      package
{
   import flash.display.*;
   public class GIFEmbed extends Sprite
   {
       [Embed(source = "../assets/talapetra.gif")]
       private var theClass:Class;
       public function GIFEmbed ()
       {
           var displayObj:DisplayObject = new theClass();
           addChild (displayObj);
       }
   }
}
           [Embed]元数据标签带有两个属性: Source:(必选的)使用这个属性来确认嵌入资源的名称和路径。如果你嵌入了一个元件,你可以用元件的关键词确定元件嵌入到SWF中的名字。 mimeType:(可选的)使用这个属性来确定嵌入资源的MIME类型。如果这个属性没有设置,Flash会在源属性中根据导入资源文件的扩展名载入合适的类型。
     Flash CS4专业版支持与Flex一样的一系列MIME类型:
   application/x-font
   application/x-font-truetype
   application/x-shockwave-flash
   audio/mpeg
   image/gif
   image/jpeg
   image/png
   image/svg
   image/svg-xml
2.元数据也可以应用到帧脚本。
3.除了嵌入图片文件,SWFs,还有SWFs中的元件以外,[Embed]元数据标签还可以嵌入OpenType和TrueType字体到Flash文件中。在这个段落中,我将演示怎么使用[Embed]元数据标签在Flash CS4中嵌入字体。这篇文章将定你已经安装了Arial Bold字体在你的系统中。如果你没有这个字体,你可以从 SearchFreeFonts.com或者类似网站上购买它。[Embed]元数据标签仅仅支持类和成员变量,如果你尝试在函数前使用[Embed]标签,如下的编译错误将会显示: "Embed is only supported on classes and member variables."(Embed仅仅支持类和成员变量)
package
{
    import flash.text.*;
    import flash.display.MovieClip;
    public class FontClass extends MovieClip
    {          
    [Embed(source="Arial Bold.ttf", fontName="myFont", fontWeight="bold", advancedAntiAliasing="true", mimeType="application/x-font")]
     private var theClass:Class;
     public function FontClass ()
     {
            var t:TextField=new TextField();
            t.embedFonts = true;
            var textFormat:TextFormat=new  TextFormat();
            textFormat.size = "30";
            textFormat.font = "myFont";
            t.text = "[Embed] metadata rocks!!!";
            t.width = 500;
            t.setTextFormat (textFormat);
            addChild (t);
     }
    }
}
Source: 这个参数指出了font文件的位置。如果愿意,你可以使用systemFont参数确认名称而不是source来嵌入系统字体。 fontName: 这个参数指明了嵌入字体的名称,字体的名称是一个唯一标识,所以你可以通过名称来调用字体。 mimeType: 这个参数描述了嵌入元数据的MIME类型。因为你在这个例子中嵌入了一种字体,你可以设置MIME类型为"application/x-font"。 fontWeight: 这个参数表明了字体的粗细,如粗体或者正常。
注意:如果字体有粗细,并且你没有在[Embed]元数据标签中包含fontWeight参数,当测试SWF文件是,你会看到如下编译错误:
Exception during transcoding: Font for alias 'myFont' with plain weight and style was not found at... (意外的转换:带有粗细和样式的别名为'myFont'的字体没有被找到在...)
       还有另外一种类型的文件也可以采用 [Embed] 元数据标签嵌入到SWF中:XML文件。
package
{
    import flash.display.*;
    import flash.utils.ByteArray;
    public class XMLLoader extends Sprite
    {
      [Embed(source = "training.xml",mimeType = "application/octet-stream")]
      private var theClass:Class;
      public function XMLLoader ()
      {
           var xmlObj:Object = new theClass();
           trace(xmlObj);
      }
     }
}
注意:当嵌入XML数据时,你必须将mimeType参数设置为"application/octet-stream"。 Flash不能通过XML文件的扩展名检测正确的MIME类型,所以无论什么时候你嵌入XML数据时都要设置mimeType参数。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在开发 Flex 或 AIR 应用程序的时候,如果需要把图片、声音等资源嵌入到目标文件中的时候,一般需要使用到 Embed
Embed 标记的功能就是把资源生成一个相应的类,以下是 Embed 标记应的地情况说明:
1、在代码中使用 Embed 标记
[Embed(source="../assets/hello.png")]
public var Hello:Class;
上面的代码声明了一个 Hello 类,但由于应用了 Embed 标记,所以编译后, 编译器会把资源与 Hello 类关联起来,并把 Hello 类生成为 mx.core.BitmapAsset 类的子类(根据资源的不同,将有不会同的父类),所以可以在代码中这样使用:

var myHello:Hello = new Hello() as BitmapAsset;
myHello.smooting = true; // smooting 属性为 BitmapAsset 类的属性
2、代码 CSS 和 MXML 中使用 Embed 标记
下面分别是在 CSS 和 MXML 中使用 Embed 标签的代码:
CSS:
Application {
     backgroundImage:Embed(source="../assets/hello.png");
}
MXML:
<mx:Application backgroundImage='@Embed("../assets/hello.png")'>
</mx:Application>
上面的两段代码看起来 Embed 没有与相关的类关联,但我想 FLEX 编辑器把生成一个匿名类,然后把生成的类设置给属性或样式
Embed 标记除了 source 参数外,还有其他参数,如果是图片资源,可以设置 scaleGridTop、scaleGridLeft、scaleGridRight、scaleGridBottom 四个参数,如果资源为 swf,可以设置 symbol 参数。
scaleGridTop、scaleGridLeft 等参数是配制一种叫做 9 切片的缩放技术,就是把图片切成 9 块,如下图:




(原图是 ,5 * 5 方格图,每个方格 4 个像素,上图是被放大后的效果)
上图在四条红线的位置把图片块成的 9 块,四个角,四条边和中间一块,在缩放的时候,四个角始终不变,两条横向边只缩放宽度,高度不变,两条纵向的边只缩放高度,宽度不变,中间一块宽和高同时缩放,这就是 9 切片缩放的原理。使用这种技术一般是在使用图片做控件的皮肤时使用,很多控件的样式四个角是圆的或不规则的,所以使用这种缩放技术可以保证控件与图片的大小不一致的时候,图片看起来也不变形。
上面图片的交图对 Embed 标签的设置是:
Embed(source="../assets/msk.gif", scaleGridTop="4", scaleGridLeft="4", scaleGridRight="16", scaleGridBottom="16");
symbol 属性配全 swf 资源一起使用,symbol 属性是设置为 swf 里面的 MovieClip 对象的名称,就是指定资源只使用 swf 中特定的 MovieClip 对象

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiabangok/archive/2009/02/14/3889982.aspx
  • 大小: 2 KB
分享到:
评论

相关推荐

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

    - 示例:嵌入图片资源`[Embed(source="image.png", mimeType="image/png")] var imgClass:Class;` - 可以通过创建新对象来访问嵌入的资源,如`var img:Bitmap = new imgClass();` 4. **使用ResourceModule**: -...

    9宫格FLASH导航

    1. 设计与制作:在Flash环境中创建一个新的文档,设置合适的舞台尺寸,然后设计9宫格的各个元素,包括按钮、图标和动画。 2. 编程:使用ActionScript编写交互逻辑,如鼠标悬停效果、点击事件处理等。 3. 导航链接:...

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

    2. 生成嵌入代码:在你的项目目录下,选择要嵌入的资源文件或目录,然后运行`go-embed` 命令: ``` go-embed resources/ ``` 这将在当前目录下生成一个`resources.go` 文件,其中包含了资源的Go代码表示。 3. ...

    flex嵌入html的容器

    3. 使用`&lt;iframe&gt;`结合`&lt;object&gt;`或`&lt;embed&gt;`嵌入Flex IFrameDemo可能利用`&lt;iframe&gt;`来加载一个包含`&lt;object&gt;`或`&lt;embed&gt;`标签的HTML页面。这样做的好处是可以使Flex应用与主页面隔离,避免样式冲突和JavaScript...

    Embed嵌入图片

    [Embed(source="image.jpg", mimeType="image/jpeg")] public class JPEGImage extends BitmapAsset { } ``` 2. **设置符号大小**:你可以通过`width`和`height`属性来指定嵌入图片的尺寸: ```as3 [Embed(source=...

    Embed嵌入XML

    这里的`source`属性指定要嵌入的XML文件路径,`mimeType`属性则指定了文件类型。这个`EmbeddedXML`类现在可以作为一个对象实例化,其`data`属性包含了XML数据。 接下来,让我们详细探讨如何在AS3代码中使用嵌入的...

    flex嵌入JSP

    &lt;embed src="path_to_your_flex.swf" quality="high" wmode="opaque" width="100%" height="100%" type="application/x-shockwave-flash"&gt; ``` 这里的`wmode="opaque"`参数是关键,它可以设置Flash对象的渲染模式...

    components-flex-embed, 内嵌比嵌入的组件 CSS.zip

    components-flex-embed, 内嵌比嵌入的组件 CSS 适合 CSS components-flex-embed 用于响应特性的CSS嵌入。 Includes 3: 1,2:,16: 9 和 4: 3 长宽比包含修饰符类。阅读更多关于css原则设计的css原则的文章。安装npm:

    HTML5 embed 标签使用方法介绍

    要使用`&lt;embed&gt;`标签嵌入内容,必须通过其`src`属性来指定要嵌入的资源的URL地址,而且该URL地址必须包含具体的文件扩展名。这一点在尝试播放MP3音乐文件时尤为重要。例如,如果要嵌入一个MP3文件,`src`属性的值就...

    flash actionscript3游戏开发之 5种将fla中的资源嵌入到Flex或者纯AS3项目中的方法.zip

    在Flash ActionScript3游戏开发中,将FLA中的资源嵌入到Flex或纯AS3项目是常见的需求。这些资源可能包括位图、字体、声音、动画等,它们是游戏视觉效果和交互体验的重要组成部分。本篇文章将详细讲解五种不同的嵌入...

    Flex嵌入IFrame解决方案

    总的来说,Flex嵌入IFrame的解决方案涉及到Flash的渲染模式设置、IFrame组件的属性调整以及可能出现的事件处理和焦点管理。理解并正确应用这些技术,可以帮助开发者在Flex应用中有效地集成IFrame,提升用户体验。

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

    在Golang生态系统中,`embed`包是一个内置于语言的标准库,自Go 1.16版本开始引入,用于将静态内容(如HTML、CSS、JavaScript、图片等)嵌入到Go程序中,使得这些资源可以随程序一起编译,无需在运行时额外管理文件...

    flex实现旋转效果

    这里的`@Embed`指令用于将本地的aliceImage.jpg图片嵌入到应用中。 接下来,为了实现旋转效果,我们需要添加交互性,这通常通过ActionScript实现。我们可以为`&lt;mx:Image&gt;`组件添加鼠标事件监听器,比如`mouseDown`...

    Jsp嵌入Flex 、Jsp Flash报表实现源码

    本资源的源码示例可能涵盖了如何设置JSP与Flex之间的通信接口,如何在JSP中嵌入Flex SWF文件,以及如何在Flex中创建和展示报表。学习这个源码可以帮助开发者了解如何实际操作这两个技术的集成,从而提升自己在构建富...

    cnych#qikqiak.com#golang1.16使用embed嵌入静态资源1

    假设 Gin 项目下需要使用静态资源以及 Template 视图模板,结构如下所示:现在我们利用 embed 就可以将上面的 templates 和 asset

    html嵌入flex swf

    HTML 嵌入 Flex SWF 是一种在网页中集成 Adobe Flex 生成的 Flash 动态内容的技术。Flex 是一个用于构建富互联网应用程序(RIA)的框架,它基于 ActionScript 和 MXML,允许开发者创建交互性强、用户体验良好的动态...

    flex绑定资源文件1

    本话题主要探讨如何在Flex中绑定资源文件,尤其是关于在按钮中嵌入icon图标的两种方法。 首先,Flex是一种基于ActionScript的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有交互性和动态...

    flex加载html页面

    标题“flex加载html页面”指的是在Flex项目中嵌入并显示HTML内容的技术。这通常通过使用Flex中的`mx.controls.WebBrowser`组件或`flash.display.Loader`类来实现。以下是对这两个方法的详细说明: 1. **`mx....

    FLEX 背景图片设置

    在本文中,我们将深入探讨如何在...总结,设置FLEX背景图片涉及MXML组件或ActionScript代码的使用,通过嵌入图片资源并调整其尺寸和对齐方式来实现。理解这些技巧将帮助你更好地定制FLEX应用的视觉呈现,提升用户体验。

    rust-embed —将静态资产嵌入rust二进制文件的宏-Rust开发

    Rust嵌入Rust Custom Derive宏,该宏在发布期间的编译时将文件加载到rust二进制文件中,并在开发期间从fs加载文件。 Y Rust嵌入Rust自定义派生宏,该宏在发行时的编译时将文件加载到rust二进制文件中,并在开发期间...

Global site tag (gtag.js) - Google Analytics