mx.controlsSWFLoader SWFLoader 控件加载并显示指定的 SWF 文件。 分派 complete 事件时启动的效果。 Flash 9 AIR 1.1 3.0 Flex 3 The <mx:SWFLoader> tag inherits all of the tag attributes of its superclass and adds the following tag attributes:

  <mx:SWFLoader
    Properties
    autoLoad="true|false"
    loadForCompatibility="false|true"
    loaderContext="null"
    maintainAspectRatio="true|false"
    scaleContent="true|false"
    showBusyCursor="false|true"
    source="No default"
    trustContent="false|true"
  
    Styles
    brokenImageBorderSkin="BrokenImageBorderSkin"
    brokenImageSkin="'__brokenImage' symbol in Assets.swf"
    horizontalAlign="left|center|right"
    verticalAlign="top|middle|bottom"
  
    Effects
    completeEffect="No default"
    
    Events
    complete="No default"
    httpStatus="No default"
    init="No default"
    ioError="No default"
    open="No default"
    progress="No default"
    securityError="No default"
    unload="No default"
  />
  
]]>
mx.core:ISWFLoadermx.core:UIComponent SWFLoader 控件加载并显示指定的 SWF 文件。通常使用 SWFLoader 将一个 Flex 应用程序载入主机 Flex 应用程序。

注意:使用 SWFLoader 控件您可以加载以下内容:在运行时加载 GIF、JPEG 或 PNG 图像文件;在运行时加载显示 SWF、GIF、JPEG 或 PNG 图像的 ByteArray;或在编译时通过 @Embed(source='filename') 加载任何上述文件类型的嵌入版本以及 SVG 文件。但是,Image 控件更适合此功能,因而应在大多数图像加载过程中使用该控件。Image 控件还可用于自定义项呈示器和项目编辑器。将 SWFLoader 或 Image 用于 SVG 文件时,只能在已使用 Embed 语句将 SVG 嵌入到您的应用程序中时才能加载该文件;不能在运行时通过网络加载 SVG。

SWFLoader 控件允许您缩放其内容和设置其大小。它也可以调整自身大小以适应其内容的大小。默认情况下,会缩放内容以适应 SWFLoader 控件的大小。它也可以根据需要以编程方式加载内容,并监视加载进度。

SWFLoader 控件无法获得焦点。但是,SWFLoader 控件的内容可接受焦点并有其自身的焦点交互。

SWFLoader 控件具有下列默认特征:

特征说明 默认大小 足以容纳加载内容的宽度和高度 最小大小 0 个像素 最大大小 未定义
mx.controls.Imageunload 在以下情况下分派:删除加载的对象时;或同一 SWFLoader 控件执行另一加载,并且在新加载开始之前删除原始内容时。flash.events.Event.UNLOADflash.events.Event 在以下情况下分派:删除加载的对象时;或同一 SWFLoader 控件执行另一加载,并且在新加载开始之前删除原始内容时。 securityError 加载内容过程中发生安全性错误时分派。flash.events.SecurityErrorEvent.SECURITY_ERRORflash.events.SecurityErrorEvent 加载内容过程中发生安全性错误时分派。有关详细信息,请参阅 SecurityErrorEvent 类。 progress 当加载内容时分派。flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent 当加载内容时分派。

无论加载是由自动加载触发还是由对 load() 方法的显式调用触发,都会分派此事件。

注意:不能保证分派 progress 事件。在不分派任何 progress 事件的情况下,也可能会接收 complete 事件。如果加载的内容是本地文件,就可能会出现这种情况。

open 当网络操作开始时分派。flash.events.Event.OPENflash.events.Event 当网络操作开始时分派。 ioError 发生输入/输出错误时分派。flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent 发生输入/输出错误时分派。 flash.events.IOErrorEventinit 已加载的 SWF 文件的属性和方法可访问时分派。flash.events.Event.INITflash.events.Event 已加载的 SWF 文件的属性和方法可访问时分派。要分派此事件,必须满足以下两个条件:
  • 可以访问与加载的对象关联的所有属性和方法以及与该控件关联的所有属性和方法。
  • 所有子对象的构造函数已完成。
httpStatus 在通过 HTTP 发出网络请求并且 Flash Player 或 AIR 可以检测到 HTTP 状态代码时分派。flash.events.HTTPStatusEvent.HTTP_STATUSflash.events.HTTPStatusEvent 在通过 HTTP 发出网络请求并且 Flash Player 或 AIR 可以检测到 HTTP 状态代码时分派。 complete 在内容加载完成时分派。flash.events.Event.COMPLETEflash.events.Event 在内容加载完成时分派。

无论加载是由自动加载触发还是由对 load() 方法的显式调用触发,都会分派此事件。

SWFLoader 构造函数。 构造函数。 getVisibleApplicationRect 获取所加载的应用程序在屏幕上对用户可见的范围。包括此对象可见部分的 Rectangle。该矩形使用全局坐标。 allApplicationsfalse确定计算该可见矩形时仅依据此应用程序中的显示对象还是同时依据所有父应用程序中的显示对象。包含更多父应用程序可能会减少所返回的可见区域。如果为 true,则所有应用程序都用于查找可见区域,否则,仅使用此应用程序中的显示对象。 获取所加载的应用程序在屏幕上对用户可见的范围。 load 加载图像或 SWF 文件。urlnull要加载的 GIF、JPEG、PNG 或 SWF 文件的绝对或相对 URL。 加载图像或 SWF 文件。url 参数可引用 GIF、JPEG、PNG 或 SWF 文件;无法使用此方法加载 SVG 文件。相反,必须对 source 属性使用 Embed 语句才能加载该文件。 unloadAndStop 卸载图像或 SWF 文件。invokeGarbageCollectortrue 提示垃圾回收器对 SWF 子对象执行 (true) 还是不执行 (false) 垃圾回收。如果要以异步方式卸载很多对象,则将 gc 参数设置为 false 可能会提高应用程序的性能。但是,如果将该参数设置为 false,则在卸载子 SWF 之后,子 SWF 文件的媒体和显示对象可能还会保存在内存中。 卸载图像或 SWF 文件。此方法返回之后,source 属性将为 null。仅在 Flash Player 的主版本为 10 或更高版本时支持此方法。如果 Flash Player 的主版本低于 10,则此方法卸载内容的方式将与 source 设置为 null 时相同。此方法尝试通过删除对子 SWF 文件的 EventDispatcher、NetConnection、Timer、Sound 或 Video 对象的引用,从而卸载 SWF 文件。因此,针对子 SWF 文件和子 SWF 文件的显示列表将发生以下行为:
  • 停止声音。
  • 删除舞台事件侦听器。
  • 删除 enterFrameframeConstructedexitFrameactivatedeactivate 的事件侦听器。
  • 停止计时器。
  • 断开摄像机和麦克风实例
  • 停止影片剪辑。
autoLoad 一个标志,指示内容是自动开始加载还是等待调用 load() 方法。true 一个标志,指示内容是自动开始加载还是等待调用 load() 方法。如果为 true,则将自动加载内容。如果为 false,则必须调用 load() 方法。 bytesLoaded 已加载的 SWF 或图像文件的字节数。 已加载的 SWF 或图像文件的字节数。 bytesTotal SWF 或图像文件的总大小。 SWF 或图像文件的总大小。 childAllowsParent 测试子级是否允许其父级访问子级的显示对象或侦听源于子级的消息。 测试子级是否允许其父级访问子级的显示对象或侦听源于子级的消息。如果允许访问,则为 true;否则为 falsecontentHeight 控件加载的缩放内容的高度(以像素为单位)。NaN 控件加载的缩放内容的高度(以像素为单位)。请注意,这不是控件本身的高度,而是已加载内容的高度。使用控件的 height 属性可获取其高度。

触发 complete 事件时,此属性的值不是最终值。您可以在触发 updateComplete 事件后获得最终值。

contentWidth 控件加载的缩放内容的宽度(以像素为单位)。NaN 控件加载的缩放内容的宽度(以像素为单位)。请注意,这不是控件本身的宽度,而是已加载内容的宽度。使用控件的 width 属性可获取其宽度。

触发 complete 事件时,此属性的值不是最终值。您可以在触发 updateComplete 事件后获得最终值。

content 此属性包含表示在 SWFLoader 控件中加载的内容的对象。3134 返回 SWFLoader 的内容。 此属性包含表示在 SWFLoader 控件中加载的内容的对象。 loadForCompatibility 一个标志,指示是否加载内容,以使其可以与用 Flex 编译器的其他版本构建的应用程序进行互操作。false 一个标志,指示是否加载内容,以使其可以与用 Flex 编译器的其他版本构建的应用程序进行互操作。通过将应用程序加载到同级(即对等)ApplicationDomain 中,从而实现与其他 Flex 应用程序的兼容。如果必须将内容加载到不同的 SecurityDomain 中,则忽略此标志。如果为 true,则内容加载到同级 ApplicationDomain 中。如果为 false,则内容加载到子级 ApplicationDomain 中。 loaderContext 用于控制内容加载的 LoaderContext 对象。null 用于控制内容加载的 LoaderContext 对象。这是一种高级属性。在大多数情况下,您可以使用 trustContent 属性。

默认值为 null,该值将导致控件使用 trustContent 属性创建可在加载开始后读回的 LoaderContext 对象。

要使用自定义 LoaderContext 对象,您必须了解 SecurityDomain 和 ApplicationDomain 类。设置此属性不会启动加载;必须在加载开始之前设置此属性。这并不意味着必须将 autoLoad 属性设置为 false,因为实际上加载不会立即启动,但是等待 creationComplete 事件设置该属性就太迟了。

flash.system.LoaderContextflash.system.ApplicationDomainflash.system.SecurityDomain
maintainAspectRatio 一个标志,指示是否保持加载内容的高宽比。true 一个标志,指示是否保持加载内容的高宽比。如果为 true,则指定以原始图像的宽高比显示该图像。 parentAllowsChild 测试父级是否允许其子级访问父级的显示对象或侦听源于父级的消息。 测试父级是否允许其子级访问父级的显示对象或侦听源于父级的消息。如果允许访问,则为 true;否则为 falsepercentLoaded 已加载图像或 SWF 文件的百分比。0 已加载图像或 SWF 文件的百分比。 scaleContent 一个标志,指示是缩放内容以适应控件大小还是调整控件大小使其适应内容大小。true 一个标志,指示是缩放内容以适应控件大小还是调整控件大小使其适应内容大小。如果为 true,则会缩放内容以适应 SWFLoader 控件。如果为 false,则会缩放 SWFLoader 控件以适应内容。 showBusyCursor 一个标志,指示加载内容时是否显示忙状态光标。false 一个标志,指示加载内容时是否显示忙状态光标。如果为 true,则加载内容时显示忙状态光标。默认的忙状态光标是由 CursorManager 类的 busyCursor 属性定义的 mx.skins.halo.BusyCursor。 mx.managers.CursorManagersmoothBitmapContent 指示是否在缩放内容时对其进行平滑处理的标志。false 指示是否在缩放内容时对其进行平滑处理的标志。仅可以对位图内容进行平滑处理。如果为 true,且内容是一个位图,则会将内容的平滑属性设置为 true。如果为 false,则不会对内容进行平滑处理。 source 作为内容加载的 URL、对象、类或类的字符串名称。null 作为内容加载的 URL、对象、类或类的字符串名称。source 属性采用以下格式:

      source="URLOrPathOrClass"

      source="@Embed(source='PathOrClass')"

source 属性的值表示相对或绝对 URL;表示 SWF、GIF、JPEG 或 PNG 的 ByteArray;实现 IFlexDisplayObject 的对象;其类型实现 IFlexDisplayObject 的类或表示类的 String。

指定 SWF、GIF、JPEG、PNG 或 SVG 文件的路径时,Flex 会自动将文件转换正确的数据类型以用于 SWFLoader 控件。

如果省略 Embed 语句,Flex 会在运行时加载引用的文件;不会将其作为生成的 SWF 文件的一部分打包。运行时,source 属性仅支持加载 GIF、JPEG、PNG 图像和 SWF 文件。

Flex 数据服务用户可以使用 SWFLoader 控件通过以下格式加载 Flex 应用程序:

      source="MXMLPath.mxml.swf"

Flex 数据服务编译 MXML 文件,并将 SWF 文件返回到主应用程序。此技术可以妥善处理将图形或动画添加到应用程序的 SWF 文件,但不适合需要大量用户交互的 SWF 文件。如果要导入需要大量用户交互的 SWF 文件,您应该将其构建为自定义组件。

swfBridge 通向与此接口的实现器关联的应用程序的桥。 通向与此接口的实现器关联的应用程序的桥。可用于向不同 ApplicationDomain 或不同沙箱中的应用程序发送事件的 IEventDispatcher。 trustContent 如果为 true,则将内容加载到安全域中。false 如果为 true,则将内容加载到安全域中。这意味着如果内容位于其他域而该域没有允许您的域访问的 crossdomain.xml 文件,加载过程将失败。此属性仅对下一加载有影响,而不会在已加载的内容上启动新的加载。

默认值为 false,表示可加载任何内容且不会失败,但您无法访问该内容。最重要的是,加载的内容无法访问您的对象和代码,这是最安全的方案。除非您完全确定已加载内容(特别是类似 SWF 文件的活动内容)的安全性,否则不要将此属性设置为 true

如果设置 trustContent 无法完全满足您的要求,您还可以使用 loaderContext 属性来准确确定加载内容的方式。loaderContext 属性会使 SWFLoader 忽略 trustContent 属性的值。但是,您应熟悉 SecurityDomain 类和 ApplicationDomain 类才能使用 loaderContext 属性。

flash.system.SecurityDomainflash.system.ApplicationDomain
ToolTip 通过 ToolTip 控件,您可以为用户提供有用信息。 因为该组件不定义手机主题的外观,所以 Adobe 不建议您在手机应用程序中使用该组件。或者,您可以为该组件定义自己的手机外观。有关更多信息,请参阅手机外观设计的基础知识 mx.core:IToolTipmx.core:IFontContextComponentmx.core:UIComponent 通过 ToolTip 控件,您可以为用户提供有用信息。当用户将鼠标指针移至图形组件上方时,将会弹出 ToolTip 控件,显示提供该组件相关信息的文本。您可以使用 ToolTip 指导用户使用您的应用程序,也可以自定义 ToolTip 控件以提供附加功能。 mx.managers.ToolTipManagermx.styles.CSSStyleDeclarationToolTip 构造函数。 构造函数。 maxWidth 新 ToolTip 控件的最大宽度(以像素为单位)。300 新 ToolTip 控件的最大宽度(以像素为单位)。 textField 呈示此 ToolTip 的文本的内部 UITextField。mx.core:IUITextField 呈示此 ToolTip 的文本的内部 UITextField。 text ToolTip 显示的文本。null ToolTip 显示的文本。 ProgressBarLabelPlacement ProgressBarLabelPlacement 类定义 ProgressBar 类的 labelPlacement 属性值。Object ProgressBarLabelPlacement 类定义 ProgressBar 类的 labelPlacement 属性值。 mx.controls.ProgressBarBOTTOM 指定将标签放置在进度栏的下方。bottom 指定将标签放置在进度栏的下方。 CENTER 指定将标签放置在进度栏的中心位置。center 指定将标签放置在进度栏的中心位置。 LEFT 指定将标签放置在进度栏的左侧。left 指定将标签放置在进度栏的左侧。 RIGHT 指定将标签放置在进度栏的右侧。right 指定将标签放置在进度栏的右侧。 TOP 指定将标签放置在进度栏的上方。top 指定将标签放置在进度栏的上方。 ProgressBarMode ProgressBarMode 类定义 ProgressBar 类的 mode 属性值。Object ProgressBarMode 类定义 ProgressBar 类的 mode 属性值。 mx.controls.ProgressBarEVENT 由 source 属性指定的控件必须分派 progress 和 completed 事件。eventsource 属性指定的控件必须分派 progresscompleted 事件。ProgressBar 使用这些事件更新其状态。 MANUAL 手动更新 ProgressBar 状态。manual 手动更新 ProgressBar 状态。在此模式中,您可以指定 maximumminimum 属性,并使用 setProgress() 方法指定状态。此模式通常在将 indeterminate 属性设为 true 时使用。 POLLED source 属性必须指定一个公开 getBytesLoaded() 和 getBytesTotal() 方法的对象。polled source 属性必须指定一个公开 getBytesLoaded()getBytesTotal() 方法的对象。ProgressBar 控件调用这些方法更新其状态。 IFlexContextMenu IFlexContextMenu 接口定义 Flex 上下文菜单的接口。 IFlexContextMenu 接口定义 Flex 上下文菜单的接口。 mx.core.UIComponent.flexContextMenusetContextMenu 设置 InteractiveObject 的上下文菜单。component要设置上下文菜单的 InteractiveObject 设置 InteractiveObject 的上下文菜单。这样将执行所有必要的步骤,将 InteractiveObject 添加作此 InteractiveObject 的上下文菜单,如添加侦听器等。 unsetContextMenu 取消对 InteractiveObject 上下文菜单的设置。component要取消其上下文菜单设置的 InteractiveObject 取消对 InteractiveObject 上下文菜单的设置。这样将执行所有必要的步骤,删除作为此 InteractiveObject 的上下文菜单的 InteractiveObject,如删除侦听器等。 ButtonLabelPlacement ButtonLabelPlacement 类为 Button、CheckBox、LinkButton 或 RadioButton 控件 labelPlacement 属性的允许值定义常量。Object ButtonLabelPlacement 类为 Button、CheckBox、LinkButton 或 RadioButton 控件 labelPlacement 属性的允许值定义常量。 mx.controls.Buttonmx.controls.CheckBoxmx.controls.LinkButtonmx.controls.RadioButtonBOTTOM 指定在图标下方显示标签。bottom 指定在图标下方显示标签。 LEFT 指定在图标左侧显示标签。left 指定在图标左侧显示标签。 RIGHT 指定在图标右侧显示标签。right 指定在图标右侧显示标签。 TOP 指定在图标上方显示标签。top 指定在图标上方显示标签。 Spacer Spacer 控件可帮助您布置父容器中的子项。The <mx:Spacer> tag inherits all of the tag attributes of its superclass, and adds no new tag attributes.

  <mx:Spacer/>
  
]]>
mx.core:UIComponent Spacer 控件可帮助您布置父容器中的子项。虽然 Spacer 控件不会绘制任何内容,但它会在父容器中为其本身分配空间。

在以下示例中,使用灵活的 Spacer 控件将 Button 控件推到右侧,以便 Button 控件与 HBox 容器的右边对齐:

  <mx:HBox>
      <mx:Image source="Logo.jpg"/>
      <mx:Label text="Company XYZ"/>
      <mx:Spacer width="100%"/>
      <mx:Button label="Close"/>
  </mx:HBox>
  
Spacer 构造函数。 构造函数。
ProgressBarDirection ProgressBarDirection 类定义 ProgressBar 类的 direction 属性值。Object ProgressBarDirection 类定义 ProgressBar 类的 direction 属性值。 mx.controls.ProgressBarLEFT 指定从右向左填充进度栏。left 指定从右向左填充进度栏。 RIGHT 指定从左向右填充进度栏。right 指定从左向右填充进度栏。 MovieClipSWFLoader MovieClipSWFLoader 控件扩展 SWFLoader,从而提供简便方法来操纵将 MovieClip 作为其根内容(如果 MovieClip 不是 Flex 应用程序)的 SWF。mx.controls:SWFLoader MovieClipSWFLoader 控件扩展 SWFLoader,从而提供简便方法来操纵将 MovieClip 作为其根内容(如果 MovieClip 不是 Flex 应用程序)的 SWF。请注意,对于其它所有 SWF 内容类型,此类将针对 movieClip getter 返回 null,且导致函数调用不执行操作指令。 MovieClipSWFLoader 构造函数 构造函数 gotoAndPlay 从指定帧开始播放 SWF 文件。frame表示播放头转到的帧编号的数字,或者表示播放头转到的帧标签的字符串。如果您指定了一个数字,则该数字是相对于您指定的场景的。如果不指定场景,当前场景将确定要播放的全局帧编号。如果指定场景,播放头会跳到指定场景的帧编号。 scenenull要播放的场景的名称。 从指定帧开始播放 SWF 文件。如果其内容不是 MovieClip,将导致不执行任何操作指令。 flash.display.MovieClip.gotoAndPlaygotoAndStop 停止播放 SWF 文件并重置指定帧的播放头。frame表示播放头转到的帧编号的数字,或者表示播放头转到的帧标签的字符串。如果您指定了一个数字,则该数字是相对于您指定的场景的。如果不指定场景,当前场景将确定要播放的全局帧编号。如果指定场景,播放头会跳到指定场景的帧编号。 scenenull要播放的场景的名称。 停止播放 SWF 文件并重置指定帧的播放头。如果其内容不是 MovieClip,将导致不执行任何操作指令。 flash.display.MovieClip.gotoAndStopgotoFirstFrameAndStop 重置第一场景的第一帧的播放头并停止播放 MovieClip。 重置第一场景的第一帧的播放头并停止播放 MovieClip。如果其内容不是 MovieClip,将导致不执行任何操作指令。 nextFrame 转到下一帧。 转到下一帧。如果内容不是 MovieClip,将不执行任何操作指令。 flash.display.MovieClip.nextFramenextScene 转到下一场景。 转到下一场景。如果内容不是 MovieClip,将不执行任何操作指令。 flash.display.MovieClip.nextSceneplay 开始播放 SWF 内容。 开始播放 SWF 内容。如果其内容不是 MovieClip,将导致不执行任何操作指令。 flash.display.MovieClip.playprevFrame 转到上一帧。 转到上一帧。如果内容不是 MovieClip,将不执行任何操作指令。 flash.display.MovieClip.prevFrameprevScene 转到上一场景。 转到上一场景。如果内容不是 MovieClip,将不执行任何操作指令。 flash.display.MovieClip.prevScenestop 停止播放 SWF 内容。 停止播放 SWF 内容。如果其内容不是 MovieClip,将导致不执行任何操作指令。 flash.display.MovieClip.stopautoStop SWF 的内容是 MovieClip 时,如果 autoStop 为 true,则加载 SWF 后会立即停止播放 MovieClip。truetrue SWF 的内容是 MovieClip 时,如果 autoStop 为 true,则加载 SWF 后会立即停止播放 MovieClip。 movieClip 已加载的 SWF 的基础 MovieClip 的句柄。 已加载的 SWF 的基础 MovieClip 的句柄。如果 SWF 的根内容不是 MovieClip,此属性将为 null。