UITextFormat 类扩展 flash.text.TextFormat 类以添加文本测量方法
默认值为
此属性对系统字体不起作用。
此属性应用于 UITextField 对象中的所有文本;但不能将其应用于部分字符以及其他对象中的文本。
允许的值为
FTE 和 TLF 在其双向文本布局算法中使用此值,该算法会将 Unicode 字符顺序映射到字型顺序。
注意:此样式只应用于当该 UITextFormat 与 UIFTETextField(而非 UITextField)一起使用时。
仅当使用嵌入字体并将
此属性对系统字体不起作用。
此属性应用于 UITextField 对象中的所有文本;但不能将其应用于部分字符以及其他对象中的文本。
FTE 和 TLF 使用此区域设置将 Unicode 字符映射到字体字型并查找后备字体。
注意:此样式只应用于当该 UITextFormat 与 UIFTETextField(而非 UITextField)一起使用时。
仅当使用嵌入字体并将
此属性对系统字体不起作用。
此属性应用于 UITextField 对象中的所有文本;但不能将其应用于部分字符以及其他对象中的文本。
仅当使用嵌入字体并将
此属性对系统字体不起作用。
此属性应用于 UITextField 对象中的所有文本;但不能将其应用于部分字符以及其他对象中的文本。
如果为
当 Flex 编译器遇到为 IDeferredInstance 类型的属性分配值的 MXML 时,将执行以下自动强制操作:
<MyComp> <myDeferredInstanceProperty> <Label text="This is a deferred label"/> </myDeferredInstanceProperty> </MyComp>
<MyComp myDeferredInstanceProperty="myPackage.MyClass/>
当 ActionScript 类延迟属性值的实例化时,使用 IDeferredInstance 接口。如果 ActionScript 类需要使用同一值的多个实例,则无法使用 IDeferredInstance。对于那些情况,请改用 IFactory 接口。
states.AddChild 类包含 IDeferredInstance 类型的
您可以嵌入位于 SVG 文件中的矢量图形图像。还可以嵌入由 Flash 生成的 SWF 文件中的 sprite 元件。在这两种情况下,MXML 编译器自动生成了一个类,该类扩展 SpriteAsset 以呈示嵌入的矢量图形图像。
编写 Flex 应用程序时,通常无需直接使用 SpriteAsset 类。例如,您可以通过编写以下内容嵌入 SWF 文件中的 sprite 元件并将其显示在 Image 控件中:
<mx:Image id="logo" source="@Embed(source='Assets.swf', symbol='Logo')"/>
或者,通过编写以下内容使用 CSS 语法将其用作应用程序的背景图像:
<fx:Style> @namespace mx "library://ns.adobe.com/flex/mx" mx|Application { backgroundImage: Embed(source="Assets.swf", symbol='Logo') } <fx:Style/>
而不必了解 MXML 编译器已为您创建了 BitmapAsset 的一个子类。
不过,了解在 ActionScript 级别发生的操作可能会有用。要在 ActionScript 中嵌入矢量图形图像,需要声明类型为 Class 的变量,并对其应用
[Bindable] [Embed(source="Assets.swf", symbol="Logo")] private var logoClass:Class;
MXML 编译器会发现 Assets.swf 中的 Logo 元件是一个 sprite,自动生成 SpriteAsset 类的子类来表示该 sprite,并将变量设置为引用此自动生成的类。然后,您可以使用此类引用通过
var logo:SpriteAsset = SpriteAsset(new logoClass()); logo.rotation=45;
但是,您很少需要自己创建 SpriteAsset 实例,因为 image-related 属性和样式可以直接设置为 image-producing 类,且组件会根据需要创建图像实例。例如,要在 Image 控件中显示此矢量图形图像,可以将 Image 的
<mx:Image id="logo" source="{logoClass}"/>
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
下列 Flex 属性的值是 EdgeMetrics 对象:
这三个属性均返回对同一 EdgeMetrics 对象的引用,Container 正使用该对象进行测量和布局;这些属性不返回此对象的副本。如果需要副本,请调用
此方法由 Flex 框架调用。开发人员不应调用它。
此方法由 Flex 框架调用。开发人员不应调用它。
如果 Repeater 执行时到达数据提供程序的末尾,则它实际执行的次数将少于所要求的次数。
Repeater 完成执行后,此属性为
Repeater 完成执行后,此属性为
如果读取
必须为
如果为
如果为
默认情况下,此属性为
请注意,DesignLayer 子项的顺序并不重要。
当更新时,用于
当更新时,用于
播放器使用 ActionScript 类来显示嵌入资源和可执行的 ActionScript 代码。当您在 Flex 应用程序中嵌入资源时,MXML 编译器会自动生成一个类来显该资源,所有这些类都会声明它们实现 IFlexAsset,因而能够与代码类区分开来。
如果边框外观未实现 IBorder,并不是错误。但是,在这种情况下,使用该外观的容器无法确定边框的边框度量信息。因此,容器从左上边缘开始放置内容(如果存在填充,则针对填充进行调整)。对于 HaloBorder 类,
<mx:tagname Properties accessibilityDescription="null" accessibilityName="null" accessibilityShortcut="null" accessibilitySilent="true|false" automationName="null" cachePolicy="auto|on|off" currentState="null" doubleClickEnabled="false|true" enabled="true|false" explicitHeight="NaN" explicitMaxHeight="NaN" explicitMaxWidth="NaN" explicitMinHeight="NaN" explicitMinWidth="NaN" explicitWidth="NaN" focusEnabled="true|false" hasFocusableChildren="false|true" height="0" id="" includeInLayout="true|false" maxHeight="10000" maxWidth="10000" measuredHeight= measuredMinHeight= measuredMinWidth= measuredWidth= minHeight="0" minWidth="0" mouseFocusEnabled="true|false" percentHeight="NaN" percentWidth="NaN" scaleX="1.0" scaleY="1.0" states="null" styleName="undefined" toolTip="null" transitions="" validationSubField width="0" x="0" y="0" Styles bottom="undefined" errorColor="0xFF0000" focusBlendMode="normal" focusSkin="HaloFocusRect"" focusThickness="2" horizontalCenter="undefined" layoutDirection="ltr" left="undefined" right="undefined" themeColor="haloGreen" top="undefined" verticalCenter="undefined" Effects addedEffect="No default" creationCompleteEffect="No default" focusInEffect="No default" focusOutEffect="No default" hideEffect="No default" mouseDownEffect="No default" mouseUpEffect="No default" moveEffect="No default" removedEffect="No default" resizeEffect="No default" rollOutEffect="No default" rollOverEffect="No default" showEffect="No default" Events add="No default" creationComplete="No default" currentStateChange="No default" currentStateChanging="No default" dragComplete="No default" dragDrop="No default" dragEnter="No default" dragExit="No default" dragOver="No default" effectEnd="No default" effectStart="No default" enterState="No default" exitState="No default" hide="No default" initialize="No default" invalid="No default" mouseDownOutside="No default" mouseWheelOutside="No default" move="No default" preinitialize="No default" remove="No default" resize="No default" show="No default" toolTipCreate="No default" toolTipEnd="No default" toolTipHide="No default" toolTipShow="No default" toolTipShown="No default" toolTipStart="No default" updateComplete="No default" valid="No default" valueCommit="No default" >]]>
交互式组件可以参与 Tab 切换和其他几种键盘焦点处理,接受低级事件(如键盘和鼠标输入),还可以被禁用,以便该组件不能收到键盘和鼠标输入。这与非交互式组件(如 Label 和 ProgressBar)相反,非交互式组件只显示内容且不能由用户操作。
UIComponent 类不作为 MXML 标签使用,而作为其他类的基类使用。
ToolTip 事件的顺序为
如果使用
ToolTip 事件的顺序为
如果使用
ToolTip 事件的顺序为
如果使用
ToolTip 事件的顺序为
如果使用
ToolTip 事件的顺序为
如果创建了自己的 IToolTip 对象,并在传递到
ToolTip 事件的顺序为
该事件是冒泡事件,针对开始了 touch 交互(即发生了 mouseDown/touchBegin)的 DisplayObject 进行分派。
响应 touch 交互的组件应侦听 touch 交互事件,从而与其它组件协调用户计划进行哪种类型的 touch 交互以及哪个组件响应此 touch 交互。
Scroller 组件结束响应用户的 touch 交互后,Scroller 组件将分派 touchInteractionEnd 事件以通知其它组件。
该事件是冒泡事件,针对开始了 touch 交互(即发生了 mouseDown/touchBegin)的 DisplayObject 进行分派。
响应 touch 交互的组件应侦听 touch 交互事件,从而与其它组件协调用户计划进行哪种类型的 touch 交互以及哪个组件响应此 touch 交互。
正在控制 touch 交互的 Scroller 组件将分派 touchInteractionStart 事件以通知可能响应相同用户的 touch 交互的其它组件。其它组件看到此事件后,应该停止响应 touch 交互,删除指明该组件正在响应 touch 交互的视觉指示,并执行其它清理操作。
该事件是冒泡事件,针对开始了 touch 交互(即发生了 mouseDown/touchBegin)的 DisplayObject 进行分派。
响应 touch 交互的组件应侦听 touch 交互事件,从而与其它组件协调用户计划进行哪种类型的 touch 交互以及哪个组件响应此 touch 交互。
要控制 touch 交互的 Scroller 组件将分派 touchInteractionStarting 事件以通知可能响应相同用户的 touch 交互的其它组件。其它组件可以利用此机会取消 Scroller 的操作,从而保持对该 touch 交互的控制。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
在触发此事件之前,效果将进行最后一组可视更改,但是这些更改将不会呈示在屏幕上。因此,您可能需要使用
该效果接着将在完成时分派 EFFECT_END 事件。EFFECT_STOP 事件的目的是让侦听器知道该效果过早结束,而不是自然结束或对
在触发此事件后,效果才会开始更改可视效果。
您可以使用此事件执行拖放操作的任意最终清理。例如,将 List 控件项目从一个列表拖动到另一个列表时,如果不再需要此 List 控件项目,则可以将其从源列表中删除。
将数据从一个 Tree 控件拖动到另一个控件时,如果在 Tree 控件
可以使用此事件处理函数将拖动数据添加到放置目标。
将数据从一个 Tree 控件拖动到另一个控件时,如果在 Tree 控件
如果在处理
在处理函数中,您可以通过更改放置目标的外观向用户提供可视反馈,即组件可以接受此拖动。例如,您可以围绕放置目标绘制一个边框,或者为放置目标提供焦点。
您应该对此事件进行处理,从而在允许放置之前执行其他逻辑,例如,将数据放置在放置目标中的各不同位置,读取键盘输入以确定拖放操作是拖动还是复制拖放数据,或者根据拖放操作类型提供不同类型的可视反馈。
您还可以通过更改
为使放置目标有效,您必须为此事件定义处理函数。在处理函数中,您可以通过更改放置目标的外观向用户提供可视反馈,即组件可以接受此拖动。例如,您可以围绕放置目标绘制一个边框,或者为放置目标提供焦点。
如果希望接受拖动,您必须调用
在 Flash Player 中,
在 AIR 中,
由于 Tree 控件中数据的构建方式与其他基于列表的控件不同,所以 Tree 控件处理拖放的方式也与这些控件不同。对于 Tree 控件,仅当您在同一 Tree 控件中移动或复制数据时,或者将数据复制到其他 Tree 控件时,
由于以编程方式进行更改会触发此事件,所以请确保任何
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
您可以通过以下方法调整组件大小:设置
在更改该属性之前,不会分派
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
您可以通过以下方法移动组件:设置
调用
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
初始化阶段结束后,就处理了属性,并测量、布置和绘制了组件,然后将分派
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
这是在显示组件前最后一次修改组件的机会。已提交所有属性,并已测量和布置了组件。
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
此时,根据组件的
仅当有一个或多个相关侦听器附加到分派对象时,才会分派此事件。
在每次更新屏幕之前,Flash Player 或 AIR 都会调用为更新预定的函数集。有时,应在下次更新时调用函数,以执行为当前更新预定的其余代码。部分功能(如效果)可能会延迟排队的函数,直到功能完成为止。
此操作不一定会使
您无需直接调用此方法。当您使用
一些组件的属性可能会影响需要创建的子对象的数目或种类,也有些组件的属性彼此之间会相互影响(例如
可在自身内部创建其他组件或对象的组件称为组合组件。例如,Flex ComboBox 控件实际上包含一个 TextInput 控件(用于定义 ComboBox 的文本区域)和一个 Button 控件(用于定义 ComboBox 箭头)。组件实现
在
您无需直接调用此方法。Flex 会调用
此方法用于解决在将框架加载为 RSL(RSL 具有自己的 SWF 上下文)情况下,访问应用程序 SWF 中嵌入的字体问题。嵌入字体只能从创建它们的 SWF 文件上下文中访问。通过使用应用程序 SWF 上下文,RSL 可以在能够访问应用程序的嵌入字体的应用程序 SWF 上下文中创建对象。
仅当设置此对象的字体样式后才调用此方法。
UIComponent 通过创建由
矩形可以有圆角。其边缘使用 Graphics 对象的当前线条样式。可以使用纯色填充、渐变填充或无填充。纯色填充可以使用 Alpha 透明度。渐变填充可以为线性渐变或放射状渐变。可在沿着渐变的指定点上至多指定 15 个颜色和 Alpha 值,可为渐变指定旋转角度和转换矩阵。最后,该矩形可具有从其上切去的圆角矩形洞。
该通用矩形绘制例程被很多外观所使用。该例程调用
此方法通常不适用于应用程序开发人员。
如果将元素大小调整为特定尺寸,则此方法通常在调用
此矩阵通常由组件的转换属性定义,例如,
此矩阵通常由组件的 2D 属性(如
因为此方法同样可用于获取任何类型的样式属性,所以返回值可能是 Boolean、String、Number、int、uint(用于 RGB 颜色)、Class(用于外观)或任何类型的对象。因此,只需将返回类型指定为 ~~。
如果要获取特定的样式属性,您需要了解其类型,而且通常希望将结果存储在该类型的某个变量中。无需将 ~~ 转换为该类型。
如果在样式查找链中的任何位置都未设置样式属性,则
请注意,Spark 组件将其外观状态用作伪状态。Halo 组件使用
由于性能原因,该 Matrix 存储在一个静态变量中,通过调用
此方法是您首次使用
此方法由
MXML
此方法是内部方法,由 Flex 框架自动调用。您不必调用或覆盖它。
初始化 UIComponent 是创建可视组件实例这一过程中的第四个步骤,首次将实例添加到父项时会自动执行此步骤。因此,您一般无需调用
创建可视化组件实例过程中的第一个步骤是使用
var okButton:Button = new Button();
构建完成后,新的 Button 实例是一个孤立 DisplayObject;该实例尚不包含用于显示其标签的作为子项的 UITextField,也没有父项。
第二个步骤是为新构建的实例配置适当的属性、样式和事件处理程序:
okButton.label = "OK"; okButton.setStyle("cornerRadius", 0); okButton.addEventListener(MouseEvent.CLICK, clickHandler);
第三个步骤是将该实例添加到父项:
someContainer.addChild(okButton);
首次将组件添加到父项时,调用
此方法首先分派
请注意,是首次向父项附加组件的操作触发了对组件内部结构的创建。如果组件的内部结构中包含其他 UIComponent,这就是一个递归过程。在此过程中,DisplayObjects 树以每次一个叶节点的速度增长。
如果您正在编写组件,则无需覆盖此方法。
Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改宽度和高度,如果在更改宽度后立即更新组件,然后在设置新高度后再次更新组件,就有些浪费。更改两个属性后再使用新的大小一次性呈示组件,效率会更高。
很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。
Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改文本颜色和大小,如果在更改颜色后立即进行更新,然后在设置大小后再更新大小,就有些浪费。同时更改两个属性后再使用新的大小和颜色一次性呈示文本,效率会更高。
很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。
Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改文本和字体大小,如果在更改文本后立即进行更新,然后在设置大小后再更新大小,就有些浪费。更改两个属性后再使用新的大小一次性呈示文本,效率会更高。
很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。
请注意,Spark 组件将其外观状态用作伪状态。Halo 组件使用
您无需直接调用此方法。使用
当设置组件的特定高度和宽度时,Flex 不会调用
覆盖此方法时,必须设置
大多数组件都会根据其显示内容以及影响内容显示的属性来计算这些值。一少部分组件只有硬编码的默认值。
某些情况下,确定默认值的方式并不固定。例如,对于一个简单的 GreenCircle 组件,可能只需在其
如果您正在覆盖自定义组件中的
此方法通常不适用于应用程序开发人员。
在下列情形中,Flex 框架将调用此方法:
由于构建样式缓存涉及到复杂的计算,因此除非必要,应避免更改
通过调用 UIComponent 的
您无需调用或覆盖此方法。
在下列情形中分派此事件:设置 ResourceManager 的
子类应覆盖此方法,并在调用
有关详细信息,请参阅对
注意:使用此方法设置焦点时,只有 TextInput 和 TextArea 控件加亮显示。当用户按 Tab 键切换控件时,所有控件都加亮显示。
请注意,调用
如果
请注意,调用
此矩阵通常由组件的转换属性定义,例如,
请注意,在父坐标中计算时,布局 Matrix3D 是在
此矩阵通常由组件的 2D 属性(如
请注意,在父坐标中计算时,布局 Matrix 是在
此方法可能会覆盖以全局方式设置的样式。
调用
此方法是一种高级方法,可在创建 UIComponent 的子类时覆盖。创建自定义组件时,可以覆盖
如果您处理样式属性,覆盖
此方法是一种高级方法,可在创建 UIComponent 的子类时覆盖。Flex 可以保证在首次调用组件的
如果您使用需要无中断地执行的严格时间要求代码,这些方法可能非常有用。例如,如果将 Effect 的
LayoutManager 使用
无论对外部方法还是内部方法(即外部方法调用的方法)而言,调用
您无需直接调用此方法。使用
如果组件没有子项,您就可以借助此方法使用针对组件的 Graphics 对象(如
如果组件有子项,您就可以借助此方法调用其子项上的
组件可以通过编程方式进行绘制,即使组件有子项时也不例外。在上述任一操作中,您都应使用组件的
请注意,您应使用
您通常通过向验证程序分配事件侦听器来处理由验证程序分派的
由于性能原因,该 Matrix 存储在一个静态变量中,通过调用
getter 仅返回
请注意,
getter 仅返回
getter 仅返回
getter 仅返回
此属性用于实现
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认情况下,锚点目标是容器的内容区域的上边缘。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
在 ActionScript 中,可能值为
此字符串不包括包名称。如果您还需要包名称,请调用 flash.utils 包中的
当您使用此属性设置组件的状态时,Flex 将应用您定义的转移。您还可以使用
还必须将
您可以使用
若要清除验证错误,请为
请注意,为
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于该值是组件坐标值,因此针对其父项的真正
设置
应用程序开发人员一般不设置 explicitMaxHeight 属性。而是设置 maxHeight 属性的值,该值设置 explicitMaxHeight 属性。不会更改 maxHeight 的值。
在布局过程中,如果应用程序开发人员明确设置了 maxHeight,则使用 explicitMaxHeight 的值。否则,使用 maxHeight 的默认值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
应用程序开发人员一般不设置 explicitMaxWidth 属性。而是设置 maxWidth 属性的值,该值设置 explicitMaxWidth 属性。不会更改 maxWidth 的值。
在布局过程中,如果应用程序开发人员明确设置了 maxWidth,则使用 explicitMaxWidth 的值。否则,使用 maxWidth 的默认值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
应用程序开发人员一般不设置 explicitMinHeight 属性。而是设置 minHeight 属性的值,该值设置 explicitMinHeight 属性。不会更改 minHeight 的值。
在布局过程中,如果应用程序开发人员明确设置了 minHeight,则使用 explicitMinHeight 的值。否则,使用 measuredMinHeight 的值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
应用程序开发人员一般不设置 explicitMinWidth 属性。而是设置 minWidth 属性的值,该值设置 explicitMinWidth 属性。不会更改 minWidth 的值。
在布局过程中,如果应用程序开发人员明确设置了 minWidth,则使用 explicitMinWidth 的值。否则,使用 measuredMinWidth 的值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于该值是组件坐标值,因此针对其父项的真正
设置
默认值为
注意:此属性与 Flash Player 使用的
此属性通常为
通常只有像 TabNavigator 和 Accordion 这样的导航器组件将此标志设置为
默认值为
使用
请注意:您可以在 MXML
设置此属性将导致
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认锚点目标是容器本身。
在具有高级约束的布局中,锚点目标可以是一个约束列。那么,内容区域就是前一列(或容器侧)与目标列之间的空间。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“constraintColumnId:value”将属性值设置为一个字符串,如“col1:10”。
如果将使用第三方工具对您的应用程序进行测试,请为每个组件赋予一个有意义的 ID。测试工具使用 ID 代表其脚本中的控件,因此使用有意义的名称可使脚本更具可读性。例如,将某个按钮的值设置为 submit_button 而不是 b1 或 button1。
对于组件,此布局约束属性是基于类似命名的样式的外观。要将 MXML 中属性的状态特定的值设置为其默认值
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束列。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“col1:10”。
组件开发人员使用此属性设置组件高度的上限。
如果应用程序开发人员覆盖 maxHeight 的默认值,则将在 explicitMaxHeight 中存储新值。不会更改 maxHeight 的默认值。因此,在布局过程中,如果应用程序开发人员明确设置了 maxHeight,则对组件最大建议高度使用 explicitMaxHeight 的值。如果用户未明确设置 maxHeight,则使用默认值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
组件开发人员使用此属性设置组件宽度的上限。
如果应用程序开发人员覆盖 maxWidth 的默认值,则将在 explicitMaxWidth 中存储新值。不会更改 maxWidth 的默认值。因此,在布局过程中,如果应用程序开发人员明确设置了 maxWidth,则对组件最大建议宽度使用 explicitMaxWidth 的值。如果用户未明确设置 maxWidth,则使用默认值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
如果应用程序开发人员设置 minHeight 的值,则将在 explicitMinHeight 中存储新值。不会更改 minHeight 的默认值。因此,在布局过程中,如果应用程序开发人员明确设置了 minHeight,则对组件最小建议高度使用 explicitMinHeight 的值。如果应用程序开发人员未明确设置 minHeight,则使用 measuredMinHeight 的值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
如果应用程序开发人员设置 minWidth 的值,则将在 explicitMinWidth 中存储新值。不会更改 minWidth 的默认值。因此,在布局过程中,如果应用程序开发人员明确设置了 minWidth,则对组件最小建议宽度使用 explicitMinWidth 的值。如果应用程序开发人员未明确设置 minWidth,则使用 measuredMinWidth 的值。
容器使用此值计算组件的大小和位置。组件本身确定其默认大小时不会使用此值。因此,如果父项为 Container,则此属性可能不会产生任何效果,要么就是容器在此属性中不起作用。由于此值位于组件坐标中,因此与其父项相关的真正
对于大多数子类(除了 Spark TabBar),默认值为
Application 的
使用
对于此类 Application 对象,
它的类型为 Object,以便创作者可以访问始祖文档对象上的属性和方法而无需进行转换。
仅当先前已设置此属性时,此属性才会返回数值;它不会以百分比形式反映组件的确切大小。
对于 UITextField 控件,此属性始终设置为 NaN。
在 Spark 布局中使用时,该属性用于计算组件在缩放和旋转之后的边界高度。例如,如果组件旋转 90 度,则指定
仅当先前已设置此属性时,此属性才会返回数值;它不会以百分比形式反映组件的确切大小。
对于 UITextField 控件,此属性始终设置为 NaN。
在 Spark 布局中使用时,该属性用于计算组件在缩放和旋转之后的边界宽度。例如,如果组件旋转 90 度,则指定
例如,如果 Accordion 容器使用延迟的实例化,则在用户导航到 Accordion 容器的第二个窗格并且该窗格创建其子项后,此窗格的
非容器类都没有描述符,所以对于这些类,
如果此 UIComponent 并非由 Repeater 创建,则该属性设置为 -1。
Array 中的第一个元素与最外面的 Repeater 对应。例如,如果
请注意,如果任一 Repeater 的
如果此 UIComponent 并非由 Repeater 创建,则该属性设置为
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束列。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“col1:10”。
默认值为 1.0,即不缩放对象。将
值 0.0 是无效值。不要将它设置为 0.0,但可以设置为一个很小的值,或者将
默认值为 1.0,即不缩放对象。将
值 0.0 是无效值。不要将它设置为 0.0,但可以设置为一个很小的值,或者将
沿着 z 轴缩放不会影响在 z=0 平面中保持平放的典型组件。对于具有已应用 3D 转换的子项的组件,或具有非零 transformZ 的组件,将受到影响。
默认值为 1.0,即不缩放对象。
在计算过程中,Flex 的任一 2D 布局都会忽略此属性。
如果合适,某些控件强制其子项在层次中显示。例如,List 控件将始终强制项呈示器(包括框)显示在层次中。实现程序必须支持将此属性设置为
如果是 String,则它是
如果是 IStyleClient(通常是 UIComponent),则此组件将使用
这与 Flash Player 使用的
对于处理键盘输入的组件该标志通常为
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
当该组件为 Spark 转换效果的目标时,可以通过设置
在 Spark 效果类上设置该属性会覆盖目标组件上的设置。
当该组件为 Spark 转换效果的目标时,可以通过设置
在 Spark 效果类上设置该属性会覆盖目标组件上的设置。
当该组件为 Spark 转换效果的目标时,可以通过设置
在 Spark 效果类上设置该属性会覆盖目标组件上的设置。
用于警告 EffectManager 此对象的某些属性正在进行补间,因此 EffectManger 不能尝试对相同属性设置动画效果。
Flex 可自动创建和管理 UID。但是,有时您必须通过实现 IUID 接口来提供自己的
对于组件,此布局约束属性是基于类似命名的样式的外观。要将属性设置为其默认值
默认锚点目标是容器本身。
在具有高级约束的布局中,锚点目标可以是一个约束行。那么,内容区域就是前一行(或容器侧)与目标行之间的空间。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“constraintColumnId:value”将属性值设置为一个字符串,如“row1:10”。
当设置为
请注意:您可以在 MXML
设置此属性将导致
如果组件的父级是布局容器(如 HBox、Grid 或 Form),则直接设置此属性或调用
如果组件的父级是布局容器(如 HBox、Grid 或 Form),则直接设置此属性或调用
大多数组件上并未设置任何 3D 转换属性。
该布局矩阵与
transform 对象的每个属性本身都是一个对象。此概念很重要,因为设置 matrix 或 colorTransform 对象的新值的唯一方法是,创建新对象并将该对象复制到 transform.matrix 或 transform.colorTransform 属性。
例如,要增加显示对象矩阵的 tx 值,您必须创建整个矩阵对象的副本,然后将新对象复制到 transform 对象的 matrix 属性中:
var myMatrix:Matrix = myUIComponentObject.transform.matrix; myMatrix.tx += 10; myUIComponent.transform.matrix = myMatrix;不能直接设置 tx 属性。下面的代码对 myUIComponent 不起作用:
myUIComponent.transform.matrix.tx += 10;
请注意,对于
嵌入的位图图像可以是 JPEG、GIF 或 PNG 文件。您还可以嵌入由 Flash 生成的 SWF 文件中的位图元件。在上述每种情况下,MXML 编译器都会自动生成一个类,用于扩展 BitmapAsset 以显示嵌入的位图图像。
在写入 Flex 应用程序时,通常不必直接使用 BitmapAsset 类。例如,您可以通过编写如下内容来嵌入 GIF 文件并在 Image 控件中显示该图像:
<mx:Image id="logo" source="@Embed(source='Logo.gif')"/>
也可以使用 CSS 语法编写如下内容来将该图像用作应用程序的背景图像
<fx:Style> @namespace mx "library://ns.adobe.com/flex/mx" mx|Application { backgroundImage: Embed(source="Logo.gif") } <fx:Style/>
而不必了解 MXML 编译器已为您创建了 BitmapAsset 的一个子类。
不过,了解在 ActionScript 级别发生的操作可能会有用。要在 ActionScript 中嵌入位图图像,需要声明一个 Class 类型的变量,然后在其上放置
[Bindable] [Embed(source="Logo.gif")] private var logoClass:Class;
MXML 编译器可识别 .gif 扩展名,将 GIF 数据的代码转换为播放器使用的位图格式,然后自动生成 BitmapAsset 类的子类,并将变量设置为引用此自动生成的类。接着,您可以借助
var logo:BitmapAsset = BitmapAsset(new logoClass()); logo.bitmapData.noise(4);
但是,您极少需要自己创建 BitmapAsset 实例,因为只需将 image-related 属性和样式设置为一个 image-producing 类,而组件会根据需要创建图像实例。例如,要在 Image 控件中显示此图像,您可以将 Image 的
<mx:Image id="logo" source="{logoClass}"/>
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
构建工厂对象时,指定
ClassFactory 类实现 IFactory 接口。因此,通过该类,您可以创建可分配到 IFactory 类型属性的对象,如 List 控件的
例如,假设您编写了一个名为 ProductRenderer 的项呈示器类,该类包含一个
var productRenderer:ClassFactory = new ClassFactory(ProductRenderer); productRenderer.properties = { showProductImage: true }; myList.itemRenderer = productRenderer;
List 控件对
使用
<mx:List id="myList" itemRenderer="ProductRenderer">
MXML 编译器自动为您创建 ClassFactory 实例。
此方法实现 IFactory 接口的
例如,如果将
将
此字符串由对象的类名称和应用程序内的唯一整数连接而成,如
有关这些参数的详细信息,请参见 Canvas 和 Panel 容器以及 Styles Metadata AnchorStyles。
有关这些参数的详细信息,请参见 Canvas 和 Panel 容器以及 Styles Metadata AnchorStyles。
此方法实现 IFactory 接口的
此属性用于解决在将框架加载为 RSL(RSL 具有自己的 SWF 上下文)时,在应用程序 SWF 中使用嵌入字体的问题。嵌入字体只能从创建它们的 SWF 文件上下文中访问。使用应用程序 SWF 的
可以嵌入任何类型的文件中的字节数据,并且将始终嵌入整个文件。虽然可以嵌入整个 SWF 文件,但无法嵌入 SWF 文件中特定资源的字节。
MXML 编译器自动生成扩展 ByteArrayAsset 的类,以表示嵌入的数据。
要随意嵌入一个文件,应声明一个类型为 Class 的变量,并使用 MIME 类型
[Bindable] [Embed(source="Story.txt", mimeType="application/octet-stream")] private var storyClass:Class;
编译器自动生成 ByteArrayAsset 类的子类,并将您的变量设置为对此自动生成的类的引用。然后,您可以使用此类引用使用
var storyByteArray:ByteArrayAsset = ByteArrayAsset(new storyClass()); var story:String = storyByteArray.readUTFBytes(storyByteArray.length);
您必须指定嵌入的 MIME 类型为
例如,如果您嵌入 PNG 文件时没有指定此 MIME 类型,则 PNG 数据将自动转码为播放器使用的位图格式,并自动生成 BitmapAsset 子类来代表它。但是,如果您将 MIME 类型指定为
MXML 文件中的大多数标签描述 UIComponent 对象树。例如,
MXML 编译器将所有这些 MXML 标签均编译为 UIComponentDescriptor 实例。确切地说,MXML 编译器自动生成 ActionScript 数据结构,即 UIComponentDescriptor 对象树。
在运行时,Container 类的
通常,您不需要自己创建 UIComponentDescriptor 实例;您可以通过 Container 类的
例如,如果您编写以下代码:
<mx:TextInput showEffect="Fade" hideEffect="Fade"/>
描述符的
如果未为组件指定 MXML 效果,则
请注意,此属性中不指定效果属性的值。实际上,效果被视为样式,因此,包含在
Container 方法
例如,如果您编写以下代码:
<mx:TextInput borderColor="0x888888" color="0xDDDDDD"/>
描述符的
function():void { this.borderColor = 0x888888; this.color = 0xDDDDDD };
如果未为组件实例指定 MXML 样式,则
将
此字符串由对象的类名称和应用程序内的唯一整数连接而成,如
将
此字符串将作为该对象的类名称,后面带有应用程序中唯一的整数,例如
嵌入的字体可以是 TrueType (TTF) 或 OpenType (OTF)。您还可以嵌入系统字体或由 Flash 生成的 SWF 文件中的字体。在上述任一情况下,MXML 编译器都会自动生成一个类,用于扩展 FontAsset 以提供嵌入的字体。
在写入 Flex 应用程序时,通常不直接使用 FontAsset 类。例如,您可以使用
但是,了解在 ActionScript 级别发生了什么可能非常有用。要在 ActionScript 中嵌入字体,需要声明一个 Class 类型的变量,然后在其中放置
[Embed(source="Fancy.ttf", fontName="Fancy")] var fancyClass:Class;
MXML 编译器将 TTF 数据的代码转化为播放器使用的字体格式,然后自动生成一个 FontAsset 类的子类,并将变量设置为引用此自动生成的类。接着,您可以借助
var fancyFont:FontAsset = FontAsset(new fancyClass()); var hasDigits:Boolean = fancyFont.hasGlyphs("0123456789");
但是,您基本不需要自己创建 FontAsset 实例,因为您使用在
<mx:Label text="Thank you for your order." fontFamily="Fancy"/>
当分配一个 DesignLayer 时,可视元素在最终将自身的有效可视性或透明度提交给它的支持 DisplayObject(如果适用)时,必须考虑其父层的可视性和透明度。
可视元素必须侦听来自关联层的父项发出的
该属性不应在 MXML 内直接设置。
此属性并非由 Flex 管理,而由各个组件管理。因此,如果使用
默认值为
例如,如果希望某个布局为将旋转 90 度的某个对象进行调整,请设置该对象的
如果对象不可视,但将
如果
将
将
此字符串将作为该对象的类名称,后面带有应用程序中唯一的整数,例如
注意:不要将此属性用于 Flex,而是使用
出于完整性原因,此类包含在 Flex 中,从而可以将 Flash 生成的 SWF 文件中的任意类型的元件嵌入到 Flex 应用程序中。但是,Flex 应用程序通常不使用嵌入的 TextField。有关嵌入资源在 Flex 中的工作方式的详细信息,请参考更常用的资源类,如 BitmapAsset。
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
对于扩展 UIComponent 的组件,这暗示调用
对于扩展 UIComponent 的组件,这暗示调用
对于扩展 UIComponent 的组件,这暗示调用
当属性更改时,新值通常不会立即对组件发挥作用。通常,会执行此时应运行的所有应用程序代码。然后根据组件验证需要及其在显示列表对象层次结构中的深度,LayoutManager 开始对组件调用
例如,设置
例如,请考虑 Container 类。此类将覆盖 DisplayObjectContainer API(如
再比如,SystemManager 类是一个 DisplayObjectContainer,其子项分成了多个层:底层为 Application 等常规子项,然后向上依次为弹出子项、工具提示,最上层为光标。SystemManager 具有名为
将子项添加到子级列表末尾之外的任何位置都会增加以前位于该索引或更高索引处的子项的索引。
调用
子级列表中第一个子项的索引为 0,第二个子项的索引为 1,最后一个子项的索引为
如果
如果通过调用
您可以使用
如果通过调用
如果通过调用
删除子级列表末尾之外的任意位置的子项都会减小更高索引处的子项的索引。
已删除子项的父项将设置为 null,并且如果没有对该子项的任何其他引用,则将其作为垃圾回收。
删除子级列表末尾之外的任意位置的子项都会减小更高索引处的子项的索引。
已删除子项的父项将设置为 null,并且如果没有对该子项的任何其他引用,则将其作为垃圾回收。
可能的值包括:
如果没有为容器指定
出于完整性原因,此类包含在 Flex 中,从而可以将 Flash 生成的 SWF 文件中的任意类型的元件嵌入到 Flex 应用程序中。但是,Flex 应用程序通常不使用嵌入的 SimpleButton。有关嵌入资源在 Flex 中的工作方式的详细信息,请参考更常用的资源类,如 BitmapAsset。
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
function set myProperty(value:Object):void { var oldValue:IPropertyChangeNotifier = _myProperty; var newValue:IPropertyChangeNotifier = value; // Need to ensure to dispatch changes on the new property. // Listeners use the source property to determine which object // actually originated the event. // In their event handler code, they can tell if an event has been // propagated from deep within the object graph by comparing // event.target and event.source. If they are equal, then the property // change is at the surface of the object. If they are not equal, the // property change is somewhere deeper in the object graph. newValue.addEventListener( PropertyChangeEvent.PROPERTY_CHANGE, dispatchEvent); // need to stop listening for events from the old property oldValue.removeEventListener( PropertyChangeEvent.PROPERTY_CHANGE, dispatchEvent); _myProperty = newValue; // now notify anyone that is listening if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE)) { var event:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent( this, "myProperty", newValue, oldValue); dispatchEvent(event); } }
请注意,Spark SkinnableDataContainer 与 DataGroup 容器不会实现该接口。这些容器通过
如果添加的可视元素已有一个不同的容器作为父项,则该元素将会从其他容器中删除。
如果添加的可视元素已有一个不同的容器作为父项,则该元素将会从其他容器中删除。
在调用
如果将某个可视元素移动到低于其当前索引位置的某个索引位置,则在这两个索引之间的所有元素的索引都增加 1。如果将某个元素移动到高于其当前索引位置的某个索引位置,则在这两个索引之间的所有元素的索引都减少 1。
此方法由 Flex 框架调用。开发人员不应调用它。
如果任一 Repeater 组件的
系统使用
在 list 控件中,Flex 将项呈示器或项目编辑器的
若要实现此接口,需定义 setter 和 getter 方法以实现
// Internal variable for the property value. private var _data:Object; // Make the data property bindable. [Bindable("dataChange")] // Define the getter method. public function get data():Object { return _data; } // Define the setter method, and dispatch an event when the property // changes to support data binding. public function set data(value:Object):void { _data = value; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); }
默认值为 0,这是一种特殊情况,表示字符数不受限制。
Flex 按从左到右的顺序浏览字符串。可以使用连字符 (-) 指定一个范围。如果字符串以尖号 (^) 开头,则先接受所有字符,然后从接受字符集中排除字符串中 ^ 之后的字符。如果字符串不以尖号 (^) 开头,则最初不接受任何字符,然后将字符串中的字符包括在接受字符集中。
由于某些字符在
文本字符串中的任何 HTML 标签都将被忽略,其显示效果就像以字符串形式输入的一样。要显示使用 HTML 标签进行格式设置的文本,请改用
要在文本中包括特殊字符左尖括号 (<)、右尖括号 (>) 或和号 (&),请将文本字符串包含在 CDATA 标签中。此外,您可以使用 HTML 字符实体表示特殊字符,例如
如果尝试将此属性设置为
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
数值越大,事件侦听器的优先级越高。对于所有优先级为
优先级可以是正数、0 或负数。默认优先级为 0。
您不应该编写取决于这些常量值的代码。它们在 Flex 的未来版本中可能会有所变动。
例如,DataGridColumn 具有 IFactory 类型的
将
此字符串由对象的类名称和应用程序内的唯一整数连接而成,如
此属性用于实现
将
此字符串由对象的类名称和应用程序内的唯一整数连接而成,如
每种数据格式都使用一个字符串进行标识。
可以使用
基于 List 的控件对于
将
对于错误报告其 screenDPI 的设备和可能在不同 DPI 类中更好进行缩放的设备,通常才需要覆盖 Flex 的默认映射。
Flex 的默认映射为:
RuntimeDPIProvider 的子类应仅依赖于运行时 API,且不应依赖于特定于 Flex 框架的任意类(除
如果将元素大小调整为特定尺寸,则此方法通常在调用
此矩阵通常由组件的转换属性定义,例如,
此矩阵通常由组件的 2D 属性(如
请注意,调用
如果
请注意,调用
此矩阵通常由组件的转换属性定义,例如,
请注意,在父坐标中计算时,布局 Matrix3D 是在
此矩阵通常由组件的 2D 属性(如
请注意,在父坐标中计算时,布局 Matrix 是在
此属性用于实现
各组件应覆盖此属性。
默认情况下,锚点目标是容器的内容区域的上边缘。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
使用
默认锚点目标是容器本身。
在具有高级约束的布局中,锚点目标可以是一个约束列。那么,内容区域就是前一列(或容器侧)与目标列之间的空间。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“constraintColumnId:value”将属性值设置为一个字符串,如“col1:10”。
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束列。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“col1:10”。
仅当先前已设置此属性时,此属性才会返回数值;它不会以百分比形式反映组件的确切大小。
仅当先前已设置此属性时,此属性才会返回数值;它不会以百分比形式反映组件的确切大小。
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束列。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“col1:10”。
默认情况下,锚点目标是容器的内容区域。在具有高级约束的布局中,目标可以是一个约束行。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“anchorTargetName:value”将属性值设置为一个字符串,如“row1:10”。
默认锚点目标是容器本身。
在具有高级约束的布局中,锚点目标可以是一个约束行。那么,内容区域就是前一行(或容器侧)与目标行之间的空间。
将属性设置为数字或数字字符串(如“10”)会指定使用默认锚点目标。
要指定锚点目标,请使用格式“constraintColumnId:value”将属性值设置为一个字符串,如“row1:10”。
由于此
例如,如果导航器容器(如 TabNavigator)具有此
如果使用此
UITextField 类扩展 flash.text.TextField 类以支持 Flex 所需的其他功能,如 CSS 样式、无效/度量/布局、启用/禁用、工具提示和支持输入中文、日文和韩文文本的 IME(输入法编辑器)。
警告:如果 UITextField 继承
UITextFormat 类扩展 TextFormat 类以添加文本测量方法
IUIComponent 接口要求使用此方法,但实际上,它不会对 UITextField 执行任何操作。
此字符串不包括包名称。如果您还需要包名称,请调用 flash.utils 包中的
flash.system.IMEConversionMode 类定义此属性的有效值的常量。您还可以指定
此属性并非由 Flex 管理,而由各个组件管理。因此,如果使用
默认值为
要嵌入的 MovieClip 必须是 SWF 文件中的一个 movieclip 元件。使用嵌入的 movieclip 的常见原因是您已在 Flash 中创建了一个基于帧的动画,并且希望在 Flex 应用程序中使用它。MXML 编译器自动生成一个类,该类会扩展 MovieClipAsset 以呈示嵌入的动画。
编写 Flex 应用程序时,通常不必直接使用 MovieClipAsset 类。例如,通过编写以下代码,您可以将 movieclip 动画用作应用程序的背景图像:
<mx:Application backgroundImage="@Embed(source='Assets.swf', symbol='BackgroundAnimation')"/>
或者
<fx:Style> @namespace mx "library://ns.adobe.com/flex/mx" mx|Application { backgroundImage: Embed(source="Assets.swf", symbol="BackgroundAnimation") } <fx:Style/>
不必了解 MXML 编译器已为您创建了 MovieClipAsset 的子类。
不过,了解在 ActionScript 级别发生的操作可能会有用。要在 ActionScript 中嵌入 movieclip,需要声明 Class 类型的变量,并对其应用
[Bindable] [Embed(source="Assets.swf", symbol="BackgroundAnimation")] private var backgroundAnimationClass:Class;
MXML 编译器会发现 Assets.swf 中的 BackgroundAnimation 元件是一个影片剪辑,自动生成 MovieClipAsset 类的子类以呈示该剪辑,并将变量设置为引用此自动生成的类。然后,您可以使用此类引用通过
var backgroundAnimation:MovieClipAsset = MovieClipAsset(new backgroundAnimationClass()); var n:int = backgroundAnimation.totalFrames;
但是,您极少需要自己创建 MovieClipAsset 实例,因为 image-related 属性和样式可以设置为 image-producing 类,且组件会根据需要创建实例。例如,要将应用程序背景设置为此动画,只需编写以下内容:
<mx:Application backgroundImage="{backgroundAnimationClass}"/>
此方法主要用于实现
在其他情况下,您应该设置
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用
可以嵌入 MP3 文件格式的声音。您还可以嵌入由 Flash 生成的 SWF 文件中的声音元件。在这两种情况下,MXML 编译器自动生成可扩展 SoundAsset 以代表嵌入的声音数据的类。
编写 Flex 应用程序时,您通常不必直接使用 SoundAsset 类。例如,通过编写以下代码即可嵌入 MP3 文件,然后在 SoundEffect 中使用该文件:
<mx:SoundEffect id="beep" source="@Embed(source='Beep.mp3')"/>
不必了解 MXML 编译器已为您创建了 SoundAsset 的子类。
不过,了解在 ActionScript 级别发生的操作可能会有用。要在 ActionScript 中嵌入位图,请声明类型为 Class 的变量,并为其指定
[Bindable] [Embed(source="Beep.mp3")] private var beepClass:Class;
MXML 编译器识别出 .mp3 扩展名,将 MP3 数据转码为播放器使用的声音格式,自动生成 SoundAsset 类的子类,并将您的变量设置为对此自动生成类的引用。然后,您可以使用此类引用通过
var beepSound:SoundAsset = SoundAsset(new beepClass()); beepSound.play();
但是,您很少需要自己创建 SoundAsset 实例,因为可以直接将 sound-related 属性和样式设置为 sound-producing 类,之后组件将根据需要创建声音实例。例如,要使用 SoundEffect 播放此声音,则可以将 SoundEffect 的
<mx:SoundEffect id="beepEffect" source="{beepClass}"/>
分派
当可安全调用
您无需直接调用此方法。子模块工厂将 RSL 加载到该模块工厂的应用程序域中时会调用此方法。
您可以提供可选参数集,以便构建工厂根据输入内容更改它们创建的内容。传递
return {"description": "This module returns 42."};返回的对象中的其他常见值包括:
MXML 文件中的大多数标签描述 UIComponent 对象树。例如,
MXML 编译器将所有这些 MXML 标签均编译为 UIComponentDescriptor 实例。确切地说,MXML 编译器自动生成 ActionScript 数据结构,即 UIComponentDescriptor 对象树。
在运行时,Container 类的
您通常不需要亲自创建 ComponentDescriptor 或 UIComponentDescriptor 实例;您可以通过 Container 类的
例如,如果编写
<mx:DataGrid id="dg" initialize="fetchData(); initDataGrid();" change="changeHandler(event);"/>
则描述符的
{ initialize: "__dg_initialize", change: "__dg_change" }
如果没有为组件指定 MXML 事件处理程序,则
字符串
public function __dg_initialize(event:mx.events.FlexEvent):void { fetchData(); initDataGrid(); }
您不应认为自动生成的事件处理程序始终由名称指定;在新版本的 Flex 中可能会有所改变。
Container 方法
例如,如果编写
<mx:TextInput id="firstName" text="Enter your first name here"/>
则描述符的
如果没有为组件指定 MXML id,则
如果已指定一个
例如,如果编写
<mx:TextInput width="150" text="Hello">
则描述符的
function():Object { return { width: 150, text: "Hello" }; }
如果没有为组件指定 MXML 属性,则
注意:事件处理程序(如
例如,如果编写
<mx:TextInput/>
则描述符的
对于由 MXML 编译器创建的 ComponentDescriptor 对象而言,此属性始终非
MXML 标签与其对应类之间的映射由 XML 命名空间和与此命名空间关联的“清单”文件(如果存在)确定。例如,由 mx: 前缀表示的标准 Flex 命名空间
<component id="TextInput" class="mx.controls.TextInput"/>
可将标签名 mx:TextInput 映射到 Class mx.controls.TextInput。请注意,使用清单文件允许将一个 XML 命名空间中的组件映射到多个 ActionScript 包中的类。
例如,如果编写
<mx:TextInput width="150" text="Hello"/>
则描述符的
{ width: 150, text: "Hello" }
如果没有为组件指定 MXML 属性,则
此 Object 通过调用由