Image

优质
小牛编辑
134浏览
2023-12-01

介绍 (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控件的使用情况 -

描述
1cn.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章节中那样在正常模式下编译和运行应用程序

Flex Image Control