Image
介绍 (Introduction)
Image控件允许您在运行时导入JPEG,PNG和GIF文件。 您还可以使用@Embed(source ='filename')在编译时嵌入这些文件中的任何一个。
嵌入的图像会立即加载,因为它们是使用Flex SWF文件编译的。 但是,它们会增加应用程序的大小并减慢应用程序初始化过程。 嵌入式映像还要求您在映像文件发生更改时重新编译应用程序。
您可以从运行SWF文件的本地文件系统加载映像,也可以通过网络上的HTTP请求访问远程映像。 这些映像与Flex应用程序无关,因此只要修改后的映像名称保持不变,就可以更改它们而不会导致重新编译操作。 引用的图像不会为应用程序的初始加载时间增加额外开销。
Class 声明 (Class Declaration)
以下是spark.components.Image类的声明 -
public class Image
extends SkinnableComponent
公共属性 (Public Properties)
S.No | 财产和描述 |
---|---|
1 | bitmapData : BitmapData [只读]返回表示当前加载的图像内容(未缩放)的BitmapData对象的副本。 |
2 | bytesLoaded : Number [只读]已加载图像的字节数。 |
3 | bytesTotal : Number [只读]以加载或挂起的字节数加载的总图像数据。 |
4 | clearOnLoad : Boolean 表示在加载新内容之前是否清除先前的图像内容。 |
5 | contentLoader : IContentLoader 可选的自定义图像加载 |
6 | contentLoaderGrouping : String 可选内容分组标识符,用于传递给关联的IContentLoader实例的load()方法。 |
7 | fillMode : String 确定位图填充尺寸的方式。 |
8 | horizontalAlign : String 内容在没有一个纵横比且scaleMode设置为mx.graphics.BitmapScaleMode.LETTERBOX时的水平对齐方式。 |
9 | preliminaryHeight : Number 当布局请求图像的“测量”边界时,提供用于高度的估计,但图像数据尚未完成加载。 |
10 | preliminaryWidth : Number 当布局请求图像的“测量”边界时,提供用于宽度的估计,但图像数据尚未完成加载。 |
11 | scaleMode : String 确定fillMode设置为mx.graphics.BitmapFillMode.SCALE时图像的缩放方式。 |
12 | smooth : Boolean 指定是否将平滑算法应用于位图图像。 |
13 | source : Object 用于位图填充的源。 |
14 | sourceHeight : Number [只读]提供原始图像数据的未缩放高度。 |
15 | sourceWidth : Number [只读]提供原始图像数据的未缩放宽度。 |
16 | trustedSource : Boolean [只读]一个只读标志,表示当前加载的内容是否被视为已加载,其安全策略允许跨域映像访问。 |
17 | verticalAlign : String 内容在没有一对一宽高比且scaleMode设置为mx.graphics.BitmapScaleMode.LETTERBOX时的垂直对齐方式。 |
公共方法 (Public Methods)
S.No | 方法和描述 |
---|---|
1 | Image() 构造函数。 |
事件 (Events)
S.No | 活动和描述 |
---|---|
1 | complete 内容加载完成后调度。 |
2 | httpStatus 在通过HTTP发出网络请求并且Flash Player可以检测HTTP状态代码时调度。 |
3 | ioError 发生输入或输出错误时分派。 |
4 | progress 在加载内容时分派。 |
5 | ready 内容加载完成后调度。 |
6 | securityError 发生安全性错误时分派。 |
方法继承 (Methods Inherited)
该类继承以下类中的方法 -
- spark.components.supportClasses.SkinnableComponent
- mx.core.UIComponent
- mx.core.FlexSprite
- flash.display.Sprite
- flash.display.DisplayObjectContainer
- flash.display.InteractiveObject
- flash.display.DisplayObject
- flash.events.EventDispatcher
- Object
Flex Image Control示例
让我们按照以下步骤通过创建测试应用程序来检查Flex应用程序中Image控件的使用情况 -
步 | 描述 |
---|---|
1 | 在cn.xnip.client包下创建一个名为HelloWorld的项目,如Flex - Create Application一章中所述。 |
2 | 在HelloWorld应用程序根文件夹HelloWorld创建foler assets 。 |
3 | 将示例图像flex-mini.png下载到HelloWorld文件夹下的文件夹assets 。 |
4 | 修改HelloWorld.mxml ,如下所述。 保持其余文件不变。 |
5 | 编译并运行应用程序以确保业务逻辑按照要求运行。 |
以下是修改后的mxml文件src/cn.xnip/HelloWorld.mxml 。
<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
width = "100%" height = "100%" minWidth = "500" minHeight = "500"
applicationComplete = "init(event)" >
<fx:Style source = "/com/xnip/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
[Bindable]
[Embed(source = "assets/flex-mini.jpg")]
private var flexImage:Class;
protected function init(event:FlexEvent):void {
dynamicImage.source =
"https://www.xnip.cn/wp-content/uploads/2021/06/fx.jpg";
}
]]>
</fx:Script>
<s:BorderContainer width = "550" height = "600" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "50" horizontalAlign = "center"
verticalAlign = "middle">
<s:Label id = "lblHeader" text = "Basic Controls Demonstration"
fontSize = "40" color = "0x777777" styleName = "heading" />
<s:Panel title = "Using Embeded Image" width = "420" height = "200" >
<s:Image source = "{flexImage}" />
</s:Panel>
<s:Panel title = "Using Image from URL" width = "420" height = "200" >
<s:Image id = "dynamicImage" />
</s:Panel>
</s:VGroup>
</s:BorderContainer>
</s:Application>
一旦准备好完成所有更改,让我们像在Flex - Create Application章节中那样在正常模式下编译和运行应用程序 。