不能直接实例化 InteractiveObject 类。调用
InteractiveObject 类本身不包含任何用于在屏幕上呈现内容的 API。要创建 InteractiveObject 类的自定义子类,请扩展具有用于在屏幕上呈现内容的 API 的一种子类,例如 Sprite、SimpleButton、TextField 或 MovieClip 类。
该事件的 dropAction 属性表示由拖动目标对象设置的动作;“none”值 (
Linux 中不调度
使用事件对象的
此事件的处理函数应该设置
鼠标只要移动,就会调度
处理
要确定执行调度的显示对象是否能接受放置,请检查该事件对象的
处理
要确定执行调度的显示对象是否能接受放置,请检查该事件对象的
在 AIR 中,取消此事件会禁止将字符输入到文本字段中。
具体来说,如果用户在 InteractiveObject 上移动手指,然后移动多根手指,则 InteractiveObject 实例除调度
处理事件对象的属性时,请注意将
注意:使用 Mac OS 操作系统的某些设备可解释四指滑动,而此 API 仅支持三指滑动。
具体来说,如果用户在 InteractiveObject 上移动手指,然后将手指移开,则 InteractiveObject 实例除调度
处理事件对象的属性时,请注意将
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上移动手指,则 InteractiveObject 实例除调度
处理事件对象的属性时,请注意将
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上移动手指,然后执行辅助点击,则 InteractiveObject 实例会调度
处理事件对象的属性时,请注意将
具体来说,如果用户在 InteractiveObject 上移动手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上点击两个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上点击一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上移动一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上移动一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在 InteractiveObject 上移动一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在触摸屏上移动一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户在触摸屏上移动一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户从触摸屏上抬起一个手指,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
具体来说,如果用户使用一个手指接触触摸屏,则 InteractiveObject 实例会调度
注意:有关环境兼容性的信息,请参阅 Multitouch 类。
每次鼠标进入显示对象容器的任何子对象区域时都会调度
每次鼠标离开显示对象容器的任何子对象区域时都会调度
TextField 对象的双击文本选择行为与
将此事件调度到当前具有焦点的对象。如果您没有禁止默认行为,则此事件的相关对象为接收焦点的 InteractiveObject 实例。可以通过调用正确注册到目标对象的事件侦听器中的
将此事件调度到当前具有焦点的对象。如果您没有禁止默认行为,则此事件的相关对象为接收焦点的 InteractiveObject 实例。可以通过调用正确注册到目标对象的事件侦听器中的
调用此方法将焦点设置到 InteractiveObject 实例,并且如果需要,将显示软键盘。
注意:iOS 上的 AIR 应用程序不支持此方法。
对于在 Flash Player 中运行的内容,此属性是一个 ContextMenu 对象。在 AIR 运行时中,ContextMenu 类扩展 NativeMenu 类,但 Flash Player 只支持 ContextMenu 类,不支持 NativeMenu 类。
注意:TextField 对象的上下文菜单中始终包含剪贴板菜单。剪贴板菜单包含“剪切”、“复制”、“粘贴”、“清除”和“全选”命令。您不能从 TextField 对象的上下文菜单中删除这些命令。对于 TextField 对象,选择这些命令(或等效键盘命令)不会生成
设置此属性不会调度任何事件。必须使用
设置此属性不会调度任何事件。您必须使用
默认情况下,该值为
当显示或关闭软键盘时,InteractiveObject 实例会调度
注意:iOS 上的 AIR 应用程序不支持此属性。
如果 InteractiveObject 的
在舞台坐标中指定
注意:在 Android 的横向模式中,不遵循
如果 SWF 文件中当前显示的任何对象包含
由
注意:要设置 TLFTextField 实例的 Tab 键顺序,请将 TLFTextField 的显示子对象转换为 InteractiveObject,然后设置
InteractiveObject(tlfInstance.getChildAt(1)).tabIndex = 3;要将 TLFTextField 对象三个实例的 Tab 顺序从默认设置(
InteractiveObject(tlfInstance1.getChildAt(1)).tabIndex = 3; InteractiveObject(tlfInstance2.getChildAt(1)).tabIndex = 2; InteractiveObject(tlfInstance3.getChildAt(1)).tabIndex = 1;
三角形顶点不包含 z 坐标,并且不一定表示 3D 面。但是,可以使用三角形路径来支持在 2D 空间中呈现 3D 几何图形。
对于 UV 坐标,(0,0) 是位图的左上角,(1,1) 是位图的右下角。
如果此矢量的长度是
如果此矢量的长度是
可设置为由 TriangleCulling 类定义的任何值。
DisplayObject 类支持基本功能(如对象的 x 和 y 位置),也支持更高级的对象属性(如它的转换矩阵)。
DisplayObject 是一种抽象基类;因此,不能直接调用 DisplayObject。调用
所有显示对象都继承自 DisplayObject 类。
DisplayObject 类本身不包含任何用于在屏幕上呈现内容的 API。因此,如果要创建 DisplayObject 类的自定义子类,您将需要扩展其中一个具有在屏幕上呈现内容的 API 的子类,如 Shape、Sprite、Bitmap、SimpleButton、TextField 或 MovieClip 类。
DisplayObject 类包含若干广播事件。通常,任何特定事件的目标均为一个特定的 DisplayObject 实例。例如,
一些以前在 ActionScript 1.0 和 2.0 MovieClip、TextField 和 Button 类中使用的属性(如
有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“显示编程”一章。
注意:如果显示未呈现,则不会调度此事件。当内容最小化或遮蔽时会出现这种情况。
如果必须删除某个对象来为新对象提供空间,则 DisplayObjectContainer 对象的下列方法也会生成此事件:
如果必须删除某个对象来为新对象提供空间,则 DisplayObjectContainer 对象的下列方法也会生成此事件:
请注意:使用
请注意:使用
要使用此方法,请先创建 Point 类的一个实例。分配给 Point 对象的 x 和 y 值表示全局坐标,原因是这些坐标相对于主显示区域的原点 (0,0)。然后,将 Point 对象作为
要使用此方法,请先创建 Point 类的一个实例。您分配的 x 和 y 值表示全局坐标,因为它们是相对于主显示区域的原点 (0,0) 的。然后将 Point 实例作为参数传递给
例如,您只能使用二维坐标 (x,y) 来通过
此方法允许您将任何给定的 x 和 y 坐标从相对于特定显示对象原点 (0,0) 的值(本地坐标)转换为相对于舞台原点的值(全局坐标)。
要使用此方法,请先创建 Point 类的一个实例。您分配的 x 和 y 的值表示本地坐标,因为它们是相对于显示对象原点的值。
然后,您可以将创建的 Point 实例作为参数传递给
请注意:对于在 Flash 创作环境中创建的对象,将使用您在“辅助功能”面板中为该对象输入的所有信息来填充
下表将对
例如,如果显示对象中一个像素的某个原色(例如红色)与背景中对应的像素颜色的值均为 0x88,则相乘结果为 0x4840。除以 0xFF 将得到该原色的值 0x48,这是比显示对象或背景颜色暗的阴影。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xFFF833(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xDDCC00(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0x222C33(因为 0xFF - 0xDD = 0x22,0xF8 - 0xCC = 0x2C,且 0x33 - 0x00 = 0x33)。
例如,如果显示对象的某个像素的 RGB 值为 0xAAA633,背景像素的 RGB 值为 0xDD2200,则显示像素的结果 RGB 值为 0xFFC833(因为 0xAA + 0xDD > 0xFF,0xA6 + 0x22 = 0xC8,且 0x33 + 0x00 = 0x33)。
例如,如果显示对象的某个像素的 RGB 值为 0xAA2233,背景像素的 RGB 值为 0xDDA600,则显示像素的结果 RGB 值为 0x338400(因为 0xDD - 0xAA = 0x33,0xA6 - 0x22 = 0x84 且 0x00 - 0x33 < 0x00)。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统不支持此功能。另外,它对于用于电视的 AIR 设备只有有限的支持。具体而言,在用于电视的 AIR 设备上,仅支持缩放和平移转换,但是不支持旋转和倾斜。有关在多个配置文件之间支持 API 的详细信息,请参阅
使用
要使用硬件加速功能,请在 Flash Professional CS5 中的“iPhone 设置”对话框的“常规”选项卡上将“呈现”设置为 GPU。或在应用程序描述符文件中将
例如,以下代码将显示对象的未转换的位图表示形式发送到 GPU:
通常,恒等矩阵 (
通常,您应该选择使用将显示对象的大小转换为在应用程序显示大小的矩阵。例如,如果您的应用程序将 Sprite 的位图版本显示为原来的一半,则应该使用缩小一半的矩阵。如果您的应用程序显示的 Sprite 大于其当前尺寸,则应该使用放大该系数的矩阵。
注意:
具有已缓存位图的显示对象的所有矢量数据都将被绘制到位图而不是主显示。如果
如果支持
除非将
将
只要对显示对象(当其
在下面的情况下,即使将
最好将
在设计时或在运行时,可通过使用 ActionScript 代码在 Flash Professional 中应用筛选器。要通过使用 ActionScript 应用滤镜,您必须制作整个
要通过使用 ActionScript 添加滤镜,请执行以下步骤(假定目标显示对象名为
如果
要修改现有的滤镜对象,必须使用修改
在加载时,如果显示对象具有关联的滤镜,则将它标记为像透明位图那样缓存自身。从此时起,只要显示对象具有有效的滤镜列表,播放器就会将显示对象缓存为位图。此源位图用作滤镜效果的源图像。每个显示对象通常有两个位图:一个包含原始未过滤的源显示对象,另一个是过滤后的最终图像。呈现时使用最终图像。只要显示对象不发生更改,最终图像就不需要更新。
flash.filters 包含有滤镜类。例如,要创建 DropShadow 滤镜,请输入:
您可以使用
注意:由于无法直接将新滤镜对象添加到
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将
大的 SWF 文件可以通过调用
要能够缩放遮罩对象,它必须在显示列表中。要能够拖动蒙版 Sprite 对象(通过调用其
通过将
注意:单个
注意:对于已旋转的 DisplayObject,返回的 x 坐标将反映未旋转的对象。
注意:对于已旋转的 DisplayObject,返回的 y 坐标将反映未旋转的对象。
如果设置为某个数值,则表面是不透明的,并且带有该数值指定的 RGB 背景颜色。如果设置为
如果在
不透明背景区域不响应鼠标事件。
可以使用
例如,如果您通过调用
对于加载的 SWF 文件,即使用于加载文件的 Loader 对象未在显示列表中,SWF 文件中的顶级显示对象也会为其本身设置
scale9Grid
set for the movie clip, the thickness of the 20-pixel line does not
vary when the clip scales (although the gradient in the movie clip does scale):
当定义
可以认为中心区域(由矩形定义)之外的八个区域类似于在缩放时已应用特殊规则的图片帧。
在设置
如果旋转显示对象,则所有后续缩放都是正常的(并会忽略
例如,请考虑以下显示对象和作为该显示对象的
显示对象。
红色矩形显示
缩放或拉伸显示对象时,矩形内的对象正常缩放,但是矩形外的对象则按照
设置
缩放本地坐标系统将更改
缩放本地坐标系统将更改
缩放本地坐标系统将更改
您可以通过设置
如果显示对象未添加到显示列表,则其
transform 对象的每个属性本身都是一个对象。此概念很重要,因为设置 matrix 或 colorTransform 对象的新值的唯一方法是,创建新对象并将该对象复制到 transform.matrix 或 transform.colorTransform 属性。
例如,要增加显示对象矩阵的
var myMatrix:Matrix = myDisplayObject.transform.matrix; myMatrix.tx += 10; myDisplayObject.transform.matrix = myMatrix;
不能直接设置
myDisplayObject.transform.matrix.tx += 10;
您也可以复制整个 transform 对象并为其赋予另一个显示对象的 transform 属性。例如,下面的代码将整个 transform 对象从
现在,新显示对象
请注意,用于电视的 AIR 设备使用硬件加速器(如果可用)进行颜色转换。
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的宽度为 0,即使您尝试将
当您将显示对象的
例如,位于 x = 100、y = 100、z = 200 位置的
如果将显示对象的
赋予
将 Shader 实例赋予此属性时,会在内部复制着色器。混合操作将使用该内部副本,而不是对原始着色器的引用。对着色器进行的任何更改(比如更改参数值、输入或字节代码)不会应用于所复制的用于混合模式的着色器。
使用 URLLoader 类加载文本或二进制数据。
Loader 类会覆盖其继承的以下方法,因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。调用以下方法将引发异常:
注意:在 ActionScript 3.0 中使用的不是 ActionScript 2.0 MovieClipLoader 和 LoadVars 类,而是 Loader 和 URLLoader 类。
在使用 Loader 类时,请考虑 Flash Player 和 Adobe AIR 的安全模型:
但在 AIR 中,
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
当从不受信任的源(如除 Loader 对象的根 SWF 文件以外的域)加载 SWF 文件时,您可能需要为 Loader 对象定义蒙版,以防止将加载的内容(Loader 对象的子级)绘画到该蒙版之外的舞台部分中,如以下代码所示:
请牢记以下要求:
您也可以在“offlist”模式下使用 Loader 实例,这样就不会将 Loader 实例添加到显示列表的显示对象容器中。在该模式下,Loader 实例可以用于加载包含应用程序的其它模块的 SWF 文件。
要检测何时可以完成 SWF 文件的加载,您可以使用与 Loader 对象的
要确定 Loader 对象的状态,请监视与 Loader 对象的
如果未指定
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
使用此方法时,请考虑 Loader 类说明中描述的 Flash Player 安全模型。
如果未指定
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
使用此方法时,请考虑 Loader 类说明中描述的 Flash Player 安全模型。
MovieClipLoader.loadClip()
method by creating a handler for the onLoadInit
event and then making the request.
You should either place the following code directly into a frame action on a Timeline, or paste it into a class that extends MovieClip. This code also expects an image named YourImage.jpg to exist in the same directory as the compiled SWF file.
如果未指定
有关完整的详细信息,请参阅
注意:在 AIR 1.5 和 Flash Player 10 中,所加载图像的最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果所加载图像的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。
加载到 Loader 对象中的 SWF 文件或图像会继承该 Loader 对象的父显示对象的位置、旋转和缩放属性。
使用
可以在包含 SWF 内容的 HTML 页中设置
使用此方法时,请考虑 Loader 类说明中描述的 Flash Player 安全模型。
在 Flash Player 10 和更高版本中,如果使用包含上载(由 POST 体内的“content-disposition”标头中的“filename”参数表示)的 multipart Content-Type(例如“multipart/form-data”),则 POST 操作会受应用于上载的安全规则的约束:
同样,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
最佳做法是,在卸载子 SWF 文件之前,您应该显式关闭子 SWF 文件的对象(如 LocalConnection、NetConnection、NetStream 和 Sound 对象)中的任何流。否则,子 SWF 文件中的音频可能会继续播放,即使已卸载子级 SWF 文件。要关闭子 SWF 文件中的流,请向子文件中添加事件侦听器以侦听
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
与加载相关的事件由 Loader 对象的
要检测加载的 SWF 中发生的未捕获错误,请使用
请注意,Loader 对象的
如果 Loader 对象加载的内容是 AVM1 (ActionScript 2) SWF 文件,则 AVM1 SWF 文件中未被捕获的错误不会导致
在构造函数中,代码创建了一个 Loader 对象并为由 Loader 对象的
在
菜单项可以是一个命令、一个子菜单或一条分隔线:
在一个项目或父菜单上侦听
在包含它的菜单显示之前或用户按下其等效键时,侦听此事件以更新该项。在完全计算等效键之前调度
注意:如果包含该菜单的窗口处于全屏模式 (
要创建一个菜单命令,请将
要创建一个子菜单命令,请创建一个命令项,然后将子菜单的 NativeMenu 对象分配给该命令项的
要创建一个分隔符,请将
使用 NativeMenu
可以向此属性分配任何对象。分配的对象不会由菜单系统使用,但可供事件处理代码使用,(通过事件对象的 target 属性)。默认情况下,此属性的值为
通过将 NativeMenuItem 构造函数中的
使用 Keyboard 类中定义的常量可以指定功能键代码。有效的功能键包括:
如果未指定任何功能键,则默认情况下,将在 Windows 或 Linux 中分配
如果为
使用小写字母设置
默认情况下,等效功能键(Windows 或 Linux 中为 Ctrl,Mac OS X 中为 Command)作为等效键的一部分包括在内。如果希望等效键是一个没有修饰符的键,可将
位于指定位置的字符是该菜单项的助记键字符。索引是从 0 开始的,所以第一个字符的索引为 0。
在不使用菜单助记键的操作系统中将忽略此属性。
名称值不显示,并可用作独立于区域设置的标识符。不自动分配名称。
将 NativeMenu 对象分配给此属性将更改该菜单项的外观和行为。子菜单项将显示子菜单图标,并且不再调度 select 事件。
注意:将菜单添加为其自身的一个子菜单(在循环引用中)可能导致应用程序挂起。
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。您可以使用
本机菜单是一种由操作系统(而不是您的应用程序)控制和调出的菜单。AIR 支持下列类型的本机菜单:
菜单对象包含菜单项。菜单项可表示命令、子菜单或分隔线。使用
要创建子菜单,可向父级菜单对象添加一个菜单项。将表示子菜单的菜单对象分配给父级菜单中匹配菜单项的
注意:窗口的根菜单和应用程序菜单必须只包含子菜单项;不表示子菜单的项可能不予显示,这些项与用户对这些菜单类型的预期相反。
当选择了菜单中的命令项或其子菜单之一时,菜单将调度
在显示菜单前的一瞬间并且按下附加到菜单项之一的等效键时,菜单调度
注意:如果正在使用 Flex Framework,请考虑使用 FlexNativeMenu 类。以声明方式在 MXML 中定义菜单通常比编写 ActionScript 代码来逐项创建菜单结构更简单。
在显示菜单之前或用户按下等效键时,侦听此事件以更新菜单。在完全计算等效键之前调度
侦听此事件可在显示菜单之前更新菜单。
注意:在 Mac OS X 上,AIR 2.6 之前的版本,当用户按下等效键时,菜单和菜单项调度
注意:将一个项添加到菜单时,如果该项的子菜单设置为菜单本身(造成循环引用),可能导致应用程序挂起。
创建上下文菜单时,可以添加 NativeMenuItem 或 ContextMenuItem 对象。但是,建议在上下文菜单中仅使用一种类型的对象,以使菜单中的所有项都具有相同的属性。
注意:将一个项添加到菜单时,如果该项的子菜单设置为菜单本身(造成循环引用),可能导致应用程序挂起。
调用
注意:将菜单添加为其自身的一个子菜单(在循环引用中)可能导致应用程序挂起。
调用
注意:将菜单添加为其自身的一个子菜单(在循环引用中)可能导致应用程序挂起。
注意:默认情况下不分配菜单项的
数组按显示顺序排序。
注意:此属性在 AIR 1.0 中是只读的, 而在 AIR 1.1 中则变为可读/写的。
根(顶级)菜单对象的
注意:当设备的方向向左旋转时,舞台方向必须向右旋转,以保持直立。
注意:当设备的方向向右旋转时,舞台方向必须向左旋转,以保持直立。
DisplayObject 是一种抽象基类;因此,不能直接调用 DisplayObject。调用
有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“显示编程”一章。
例如,下例在索引位置 0、2、1 处分别显示 a、b、c 三个显示对象:
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
注意:
垃圾回收器重新分配未使用的内存空间。当在某处变量或对象不再被主动地引用或存储时,如果不存在对该变量或对象的任何其它引用,则垃圾回收器将清理并擦除其过去占用的内存空间。
垃圾回收器重新分配未使用的内存空间。当在某处变量或对象不再被主动地引用或存储时,如果不存在对该变量或对象的任何其它引用,则垃圾回收器将清理并擦除其过去占用的内存空间。
在使用
该代码产生以下对象排列:
当您使用 Sprite 类的实例(而不是使用 SimpleButton 类)来创建按钮时,此属性很有用。当您使用 Sprite 实例来创建按钮时,可以选择使用
设置此属性不会调度任何事件。您必须使用
注意:不要将
将 GraphicsGradientFill 对象与
注意:此值表示渐变框中的位置,而不是最终渐变的坐标空间。最终渐变可能会比渐变框更宽或更窄。为
例如,对于包括蓝和绿两种颜色的线性渐变,以下示例显示了渐变中的颜色基于不同
数组中的值必须持续增加;例如,
例如,下例显示了两种颜色之间的简单线性渐变(
例如,下例显示了两种颜色之间的简单线性渐变:
此示例将
如果将
如果将
Sprite 对象与影片剪辑类似,但没有时间轴。Sprite 是不需要时间轴的对象的相应基类。例如,Sprite 将是通常不使用时间轴的用户界面 (UI) 组件的逻辑基类。
Sprite 类是 ActionScript 3.0 中新引入的类。它提供了 MovieClip 类功能的替代功能,此替代功能保留了 ActionScript 以前版本的所有功能以提供向后兼容性。
注意:每个事件侦听器方法都声明一个局部
三维显示对象跟随指针,
三维显示对象跟随指针,
虽然使用 SimpleButton 类创建按钮是一种比较好的方法,但是可以使用
如果将
可以随时更改
注意:必须将指定为点击区域的 Sprite 的
注意:此属性不影响 HTMLControl 对象(位于 Adobe AIR 中)中的 HTML 内容。
可以随时更改
注意:在 Flex 或 Flash Builder 中,如果您的 Sprite 拥有子 Sprite,您可能要将
将 GraphicsBitmapFill 对象与
如果为
例如,请考虑下列位图(20 x 20 像素的棋盘图案):
当
如果为
将 GraphicsStroke 对象与
如果未提供值,则线条不使用像素提示。
例如,以下图示显示了不同的
例如,以下图示显示了不同的
注意:对于设置为
例如,请考虑下列带拐角的线条,每个线条都以
请注意,对于给定的
例如,请考虑下列带拐角的线条,每个线条都以
请注意,对于给定的
例如,以下图示显示了不同的
例如,以下图示显示了不同的
注意:对于设置为
绘制 GraphicsEndFill 对象与调用
精度模式选择将影响以下着色器操作。在包含 SSE 指令集的 Intel 处理器上,这些操作的执行速度较快:
fast 精度模式旨在获得最高性能,但在不同平台上和各种 CPU 配置下工作不一致。多数情况下,这种精度级别足以创建无可见失真的图形效果。
通常,使用 fast 精度模式比使用查找表更快。
在 full 精度模式下,着色器将按照 IEEE 32 位浮点标准的全宽计算所有数学运算。此模式可在所有平台上提供一致的行为。在此模式下,某些数学运算(比如三角函数和指数函数)可能速度较慢。
例如,如果显示对象的某个像素的 RGB 值为 0xAAA633,背景像素的 RGB 值为 0xDD2200,则显示像素的结果 RGB 值为 0xFFC833(因为 0xAA + 0xDD > 0xFF,0xA6 + 0x22 = 0xC8,且 0x33 + 0x00 = 0x33)。
在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xDDCC00(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。
在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0x222C33(因为 0xFF - 0xDD = 0x22,0xF8 - 0xCC = 0x2C,且 0x33 - 0x00 = 0x33)。
在 GPU 呈现下不支持。
在 GPU 呈现下不支持。
在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xFFF833(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。
在 GPU 呈现下不支持。
例如,如果显示对象中一个像素的某个原色(例如红色)与背景中对应的像素颜色的值均为 0x88,则相乘结果为 0x4840。除以 0xFF 将得到该原色的值 0x48,这是比显示对象或背景颜色暗的阴影。
在 GPU 呈现下不支持。
将
在 GPU 呈现下不支持。
例如,如果显示对象的某个像素的 RGB 值为 0xAA2233,背景像素的 RGB 值为 0xDDA600,则显示像素的结果 RGB 值为 0x338400(因为 0xDD - 0xAA = 0x33,0xA6 - 0x22 = 0x84 且 0x00 - 0x33 < 0x00)。
无法通过 ActionScript 代码直接创建 Graphics 对象。如果调用
Graphics 类是最终类;无法从其派生子类。
例如,请考虑下列位图(20 x 20 像素的棋盘图案):
当
只要绘制 3 个或更多个点,或者调用
只要绘制 3 个或更多个点,或者调用
注意:此值表示渐变框中的位置,而不是最终渐变的坐标空间,最终渐变可能会比渐变框更宽或更窄。为
例如,对于包括蓝和绿两种颜色的线性渐变,下例显示了基于不同
数组中的值必须持续增加;例如,
例如,请考虑两种颜色之间的简单线性渐变:
此示例将
如果将
如果将
例如,假设有两种颜色之间的简单线性渐变(
只要绘制 3 个或更多个点,或者调用
传递 Shader 实例作为参数时,会在内部复制着色器。绘图填充操作将使用该内部副本,而不是对原始着色器的引用。对着色器进行的任何更改(比如更改参数值、输入或字节代码)不会应用于所复制的用于填充的着色器。
着色器中收到的坐标基于为
只要绘制 3 个或更多个点,或者调用
在 GPU 呈现下不支持着色器填充;填充的区域将以蓝绿色着色。
绘制的曲线是二次贝塞尔曲线。二次贝塞尔曲线包含两个锚点和一个控制点。该曲线内插这两个锚点,并向控制点弯曲。
绘制 4 条曲线以生成一个圆,并将其填充为绿色。
请注意,由于二次贝塞尔方程式所具有的特性,此对象并不是完美的圆。绘制圆的最佳方法是使用 Graphics 类的
绘制两条 1 个像素粗的曲线,并将两条曲线之间的区域填充为白色。
图形路径可以包含其他图形路径。如果
通常,与使用一系列单个
如果此矢量的长度是
如果此矢量的长度是
如果
可以使用任何类型的填充,但如果填充有转换矩阵,则将忽略该转换矩阵。
在使用位图填充时,
位图线条样式将用于随后对
可以在绘制路径的中间调用
请在调用
调用
例如,对于包含蓝和绿两种颜色的线性渐变,下图显示了基于不同
数组中的值必须持续增加;例如,
渐变线条样式将用于随后对
可以在绘制路径的中间调用
请在调用
调用
着色器线条样式将用于随后对
可以在绘制路径的中间调用
请在调用
调用
miterLimit
set to 1:
如果未提供值,则线条不使用像素提示。
例如,以下图示显示了不同的
例如,以下图示显示了不同的
注意:对于设置为
例如,请考虑下列带拐角的线条,每个线条都以
请注意,对于给定的
可以在绘制路径的中间调用
注意:调用
注意:Flash Lite 4 仅支持前 3 个参数(
线条粗细设置为 10 个像素,颜色为金色且不透明,线条终点设置为 none(因为联接了所有线条),两条线之间的联接点设置为
通过使用
由于
注意:type 值是在创建窗口时指定的,无法更改。
屏幕是位于可能更大的“虚拟桌面”内的独立桌面区域。虚拟桌面的原点是操作系统指定的主屏幕的左上角。因此,个别显示屏幕范围的坐标可能是负数。虚拟桌面也可能有一些不在任何显示屏幕内的区域。
Screen 类包括用于访问可用屏幕对象的静态类成员和用于访问个别屏幕属性的实例成员。屏幕信息不应进行缓存,因为这些信息可能会由用户随时更改。
请注意,屏幕和连接到计算机的物理监视器之间不一定有一对一的对应关系。例如,两台监视器可以显示同一个屏幕。
无法直接实例化 Screen 类。调用
请注意,此类旨在用作具有
屏幕位置相对于虚拟桌面。
在使用某些窗口管理器的 Linux 系统中,此属性返回桌面边界,而不是屏幕的可视边界。
修改返回的数组对可用的屏幕没有任何效果。
屏幕的
注意:全屏模式是使用 Stage 对象的
利用
一个 Bitmap 对象可在若干 Bitmap 对象之中共享其 BitmapData 引用,与转换属性或旋转属性无关。由于能够创建引用相同 BitmapData 对象的多个 Bitmap 对象,因此,多个显示对象可以使用相同的复杂 BitmapData 对象,而不会因为每个显示对象实例使用一个 BitmapData 对象而产生内存开销。
Bitmap 对象可通过以下两种方式之一将 BitmapData 对象绘制到屏幕上:使用矢量渲染器作为填充位图形状,或使用更快的像素复制例程。像素复制例程的速度比矢量渲染器要快很多,但 Bitmap 对象必须满足某些条件才能使用该例程:
如果从中加载 Bitmap 对象的域不同于用于加载图像的 Loader 对象的域,并且没有用于允许访问 Loader 对象的域的 URL 策略文件,则该域中的脚本无法访问 Bitmap 对象或其属性及方法。有关详细信息,请参阅 Flash Player 开发人员中心主题:
注意:Bitmap 类不是 InteractiveObject 类的子类,因此它无法调度鼠标事件。但是,可以使用包含 Bitmap 对象的显示对象容器的
注意:
创建 ShaderData 对象时会将这些属性添加到该对象中。这些属性的名称与着色器源代码中指定的名称相匹配。每个属性的数据类型因属性所表示的着色器方面而异。表示着色器参数的属性是 ShaderParameter 实例,表示输入图像的属性是 ShaderInput 实例,而表示着色器元数据的属性是与其数据类型相对应的 ActionScript 类的实例(例如,文本元数据的 String 实例和 uint 元数据的 uint)。
例如,假设有以下着色器,其中定义有一个输入图像 (
如果通过为此着色器加载字节代码来创建 Shader 实例,则其
请注意,将着色器编译为字节代码时,会删除着色器源代码中已定义但未在着色器的
通常,开发人员代码不创建 ShaderData 实例。包含着色器数据、参数和输入的 ShaderData 实例可用作 Shader 实例的
请注意,此示例假设应用程序输出目录所在的同一目录中有一个名为“donothing.pbj”的着色器字节码文件。
在独立模式中使用着色器有两个主要原因:
在执行 ShaderJob 操作之前,您提供一个向其写入结果的对象,方法是将其设置为
要开始后台着色器操作,请调用
要同步执行着色器操作(即不在后台运行),请调用
调用
在异步模式(当
一次只有一个后台 ShaderJob 操作执行。Shader 操作在执行之前将保留在队列中。如果在着色器操作正在执行的过程中调用
要以同步模式执行着色器操作,请使用
调用
当着色器操作正在执行时,
如果调用了
要处理包含线性数据数组(而不是图像数据)的 ByteArray,请在 ByteArray 中将对应 ShaderInput 实例的
系统镶边是指窗口特定于操作系统的元素,比如标题栏、最小化按钮、最大化按钮和关闭按钮。
注意:所使用的系统镶边的类型是在创建窗口时指定的,无法更改。
不使用。
使用此设置可模拟本机操作系统的外观。
在 Flash Professional 中,您可以在属性检查器中赋予按钮一个实例名称。SimpleButton 实例名称显示在影片浏览器中和“动作”面板的“插入目标路径”对话框中。在 Flash Professional 中创建了按钮的一个实例后,您可以使用 SimpleButton 类的方法和属性,通过 ActionScript 来操作按钮。
在 ActionScript 3.0 中,您使用
SimpleButton 类继承自 InteractiveObject 类。
注意:要防止按钮上的 mouseClicks 行为,请将
您可以随时更改
myBtn1_btn
and myBtn2_btn
. Enter the following ActionScript in Frame 1 of the Timeline:
When the mouse is over and clicks myBtn1_btn
, there is no pointing hand. However, you see the pointing hand when the button is over and clicks myBtn2_btn
.
可以随时更改
术语
顶点 0、1 和 2 按顺时针顺序排列的三角形的法线值为正。也就是说,其法线指向正 z 轴方向,远离当前视图点。如果使用了
顶点按逆时针顺序排列的三角形的法线值为负。也就是说,其法线指向负 z 轴方向,朝向当前视图点。如果使用了
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。您可以使用
对 NativeWindow 实例的引用由 window 构造函数返回。也可以使用该窗口的舞台上的任何显示对象的
var window:NativeWindow = displayObject.stage.nativeWindow;
NativeWindow 实例的属性只能由应用程序内容访问。如果非应用程序内容尝试访问 NativeWindow 对象,则将引发安全错误。
可以使用 Stage 对象的 DisplayObjectContainer 方法(如
不能将 Flex 组件直接添加到 NativeWindow 实例的显示列表中。而应使用 Flex mx:WindowedApplication 和 mx:Window 组件创建窗口并将其他 Flex 组件添加为上述对象的子项。可以将基于 Flex 的 SWF 内容直接添加到 NativeWindow 窗口,只要该 SWF 文件已加载到自己的应用程序域中并且是应用程序内容。
要创建根 HTML 窗口以显示 HTML 内容,使用
下面对 NativeWindow 对象的操作是异步执行的:
如果
在调用 window 构造函数之后和调用
不要调整窗口大小或更改其在
每当窗口原点(
注意:在 NativeWindow 对象的
注意:在 NativeWindow 对象的
创建窗口后,不能更改
默认窗口大小由操作系统决定,并且窗口是在不可见状态下创建。要防止将窗口更改为可见,请不要将窗口的
激活一个窗口将会:
在 Linux 上,
在所有平台上,NativeWindow 对象都会调度
使用对窗口舞台上的显示对象的引用:
关闭操作一旦完成即调度
关闭一个窗口时,它所拥有的任何窗口也将被关闭。拥有的窗口不调度
如果未在其他位置引用当前处于此窗口中的显示对象实例,则会将这些实例作为垃圾回收,除非它们位于由 AIR 创建的初始应用程序窗口中。要允许将初始窗口中的显示对象作为垃圾进行回收,请将它们从窗口舞台上删除。
关闭后的 NativeWindow 对象仍然是有效的引用,但访问大多数属性和方法都将引发非法操作错误。
关闭的窗口无法重新打开。如果窗口已经关闭,则不执行任何动作,也不调度任何事件。
注意:要在不关闭窗口的情况下隐藏一个窗口,请将该窗口的
通过引用 NativeWindow 实例 (
虚拟桌面坐标相对于主监视器的左上角。
您不能通过在返回的矢量中添加或删除对象来更改 NativeWindows 的所有权。创建窗口后,不能更改窗口所有权。
调用
操作系统行为注意事项:
调用
此窗口拥有的任何窗口在该窗口最小化时隐藏起来。拥有的窗口不调度
注意:
当
为信息性通知提供的提示持续时间很短,而为关键通知提供的提示将持续到用户激活此窗口为止。并非所有 Linux 窗口管理器都支持两种通知级别。对于此类窗口管理器,无论指定哪个选项,
注意:允许在
不要激活此窗口或应用程序或获取其焦点。最小化或隐藏的 (
拥有的窗口从不会移动到所有者的后面。如果此窗口有所有者,则该所有者及其所拥有的其他窗口也会排在目标后面。如果目标窗口有所有者,则此窗口排在目标的所有者的后面。
某些 Linux 窗口管理器不允许将实用程序窗口排在常规窗口之后。
不要激活此窗口或应用程序或获取其焦点。最小化或隐藏的 (
窗口从不会移到属于它的窗口的前面。如果此窗口有所有者,则该所有者及其所拥有的其他窗口也会排在目标前面。如果目标窗口有所有者,则此窗口也会排在与目标拥有同一所有者的任何其他窗口的前面。
某些 Linux 窗口管理器不允许将常规窗口排在实用程序窗口之前。
不要激活此窗口或应用程序或获取其焦点。最小化或隐藏的 (
如果
拥有的窗口从不会移动到所有者的后面。如果此窗口有所有者,则该所有者及其所拥有的其他窗口也会排在窗口显示列表的底部。此窗口将移到同一窗口拥有的任何其他窗口的后面。如果此窗口拥有其他窗口,则那些窗口也移到后面,保持当前它们相互之间的顺序。
某些 Linux 窗口管理器不允许将实用程序窗口排在常规窗口之后。
不要激活此窗口或应用程序或获取其焦点。最小化或隐藏的 (
如果
窗口从不会移到属于它的窗口的前面。如果此窗口拥有其他窗口,则那些窗口也移到前面,保持当前它们相互之间的顺序。如果此窗口有所有者,则该所有者及其所拥有的其他窗口也会排在窗口显示列表的前面。此窗口移到具有同一所有者的其他窗口的前面。
某些 Linux 窗口管理器不允许将常规窗口排在实用程序窗口之前。
调用
如果窗口已经处于
要检测状态更改是否完成,请侦听
在从
在从其他代码调用时,此方法开始一个由键盘或鼠标驱动的移动序列,该序列与操作系统的默认序列一致。
在移动序列执行期间,随着窗口原点的移动,将调度一系列事件。对于每次增量移动,首先调度一个
在从
在从其他代码调用时,此方法开始一个由键盘或鼠标驱动的调整大小序列,该序列与操作系统的默认序列一致。
在调整大小序列执行期间,随着窗口尺寸的更改,将调度一系列事件。对于每次增量更改,首先调度一个
使用
沿系统深度顺序有两组窗口。位于
将
应该尽量少将
操作系统行为注意事项:
窗口尺寸包括任何系统镶边。窗口舞台的尺寸等于窗口尺寸减去任何系统镶边的大小。更改窗口的宽度和高度将更改舞台的
在根 HTML 窗口中,
每当此窗口的宽度或高度更改时即调度
设置窗口的
无法保证设置各个尺寸的顺序。在不允许窗口扩大到桌面区域之外的 Linux 窗口管理器中,即使应用所有属性更改的最终效果会产生合法的窗口,也可能会阻止对单个属性的更改。
如果指定的宽度或高度小于允许的最小值或大于允许的最大值,则会将窗口宽度或高度设置为最接近的合法大小。决定宽度和高度的最小值和最大值的因素包括以下这些:
当窗口的位置或尺寸更改时,像素值将舍入为最近的整数。
对已关闭的窗口访问以下属性将引发非法操作错误:
同样,对已关闭的窗口调用以下方法也将引发非法操作错误:
用作可能值的常量在 NativeWindowDisplayState 类中定义:
窗口的尺寸包括显示的任何系统窗口镶边。可以从
更改窗口的
如果指定高度小于允许的最小值或大于允许的最大值,则会将窗口高度设置为最接近的合法大小。决定高度的最小值和最大值的因素包括以下这些:
在 Linux 上,设置
要检测高度更改是否完成,请侦听
当窗口的高度更改时,像素值将舍入为最近的整数。
大小限制指定为 Point 对象的坐标。点的
对通过
如果窗口的当前范围大于新的最大大小,则设置
如果指定的宽度或高度大于允许的最大值,则会将窗口的宽度或高度设置为最接近的合法大小。决定宽度和高度的最小值和最大值的因素包括以下这些:
注意:在某些操作系统(如 Mac OS X)中,即使最大化后的窗口将小于操作系统屏幕,将窗口最大化也只能使窗口扩大至
创建窗口后,不能更改
注意:即使在
在将 NativeMenu 对象分配给窗口的
注意:允许在
大小限制指定为 Point 对象的坐标。点的
如果窗口的当前范围小于新的最小大小,则设置
对通过
注意:显示的任何系统镶边的宽度和高度可能使得无法将窗口设置得与指定的最小大小一样小。
创建窗口后,不能更改
注意:即使在
窗口所有权是在创建窗口时建立的,不能更改。要创建具有所有者的窗口,请将拥有的 NativeWindow 对象设置为用于创建所拥有窗口的 NativeWindowInitOptions 对象的
注意:在 Linux 上,当所有者处于全屏模式时,有些窗口管理器不在拥有窗口前面显示所拥有的窗口。
Note: Not all Linux window managers honor the resizable
setting.
创建窗口后,不能更改
舞台是窗口显示列表的根。通过将可视显示对象添加到舞台或添加到此舞台的显示列表中已有的另一个对象来将可视显示对象添加到窗口。舞台尺寸是在窗口使用系统镶边时窗口客户端区域的尺寸。如果不使用系统镶边,舞台尺寸等于窗口尺寸。
如果
注意:允许在
如果
注意:允许在
当
注意:根据为操作系统设置的用户首选项的不同,在应用程序运行过程中,此属性的值可能会发生变化。
由
创建窗口后,不能更改系统镶边设置。
大小限制指定为 Point 对象的坐标。点的
除了操作系统大小限制,AIR 将窗口大小的最大值限制为 4095 x 4095 像素(在 AIR 1.5 及早期版本中限制为 2880 x 2880 像素)。此外,应用程序可以使用 NativeWindow 对象的
大小限制指定为 Point 对象的坐标。点的
该标题将出现在该窗口的系统镶边中(如果显示系统镶边),也会出现在与系统相关的其他位置(如任务栏)。
创建窗口后,不能更改
注意:并不总是支持窗口透明度。如果用户的操作系统配置不提供透明度,则创建窗口时将不含透明度。原本要透明的区域将混合为黑色。请使用
由
创建窗口后,不能更改
不可见窗口不显示在桌面上,但所有窗口属性和方法都是有效的。
在默认情况下,
如果此窗口有所有者,该所有者窗口的可见状态确定是否显示此窗口。如果不显示所有者窗口,则不显示任何拥有的窗口,即使其
注意:在 Mac OS X 中,对一个最小化的窗口设置
为本机窗口报告的尺寸包括显示的任何系统窗口镶边。可以从
更改窗口的
如果指定宽度小于允许的最小值或大于允许的最大值,则会将窗口宽度设置为最接近的合法大小。决定宽度的最小值和最大值的因素包括以下这些:
在 Linux 上,设置
要检测宽度更改是否完成,请侦听
当窗口的宽度更改时,像素值将舍入为最近的整数。
在安装了多个显示器的系统中,
更改窗口的
在 Linux 上,设置
要检测位置更改是否完成,请侦听
当窗口的 x 坐标更改时,像素值将舍入为最近的整数。
在安装了多个显示器的系统中,
更改窗口的
在 Linux 上,设置
要检测位置更改是否完成,请侦听
当窗口的 y 坐标更改时,像素值将舍入为最近的整数。
对于在浏览器中(使用 Flash® Player)运行的 SWF 内容,Stage 表示显示 Flash 内容的整个区域。对于在桌面操作系统上的 AIR 中运行的内容,每个 NativeWindow 对象都有一个对应的 Stage 对象。
无法以全局方式访问 Stage 对象。而是需要利用 DisplayObject 实例的
Stage 类具有多个始祖类 -- DisplayObjectContainer、InteractiveObject、DisplayObject 和 EventDispatcher,属性和方法便是从这些类继承而来的。从这些继承的许多属性和方法不适用于 Stage 对象,或在调用 Stage 类时需要安全检查。需要安全检查的属性和方法被记录为 Stage 类的一部分。
此外,下面的继承属性不适用于 Stage 对象。如果尝试设置这些属性,便会引发 IllegalOperationError。这些属性通常可以读取,但是由于无法进行设置,所以它们将始终包含默认值。
一些您可能期望成为 Stage 类的一部分的事件(例如
当用户旋转设备、打开滑出式键盘或调用
注意:如果
重要:在 Android 设备上不调度 orientationChanging 事件。
注意:如果
例如,下例在索引位置 0、2、1 处分别显示 a、b、c 三个显示对象:
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
注意:
函数可以有任何名称。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将
成功注册一个事件侦听器后,无法通过额外调用
请记住,注册该侦听器后,如果继续调用具有不同
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。
如果不再需要某个事件侦听器,可调用
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
焦点方向的概念必须由应用程序(或应用程序框架)来定义。虽然可以使用其他可用的属性来确定排序原则,但交互式对象并不存在固有的焦点排序。例如,您可以按照交互式对象在舞台上或在显示列表中的位置对这些对象进行排序。调用
在接收焦点时,
如果将 HTMLLoader 对象赋予
当从 LoaderInfo 对象调用
只将
垃圾回收器重新分配未使用的内存空间。当在某处变量或对象不再被主动地引用或存储时,如果不存在对该变量或对象的任何其它引用,则垃圾回收器将清理并擦除其过去占用的内存空间。
如果由于方法调用导致舞台方向更改,Stage 对象将调度 orientationChange 事件。
要检查是否支持设备方向,请检查
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或用于电视的 AIR 设备不支持此功能。您可以使用
在使用
该代码产生以下对象排列:
将
不要将此参数设置为
要检查是否支持不断更改的设备方向,请检查
设置方向是一个异步操作。它不保证您在调用
重要说明:在 AIR 2.6 之前,Android 设备上不支持
当从 LoaderInfo 对象调用
trace(Stage.allowsFullsreen);
此属性的初始值是从应用程序描述符的
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或用于电视的 AIR 设备不支持此功能。您可以使用
三个可能的值是在 flash.display.ColorCorrectionSupport 类中具有对应常数的字符串。
使用
通常,激活颜色管理有如下优点:可预知颜色并保持颜色的一致性、更好的转换、准确的校样以及更有效的跨媒体输出。但是请注意,由于设备相互之间或与原始图像的色域不同,因此颜色管理无法提供完美的转换。同时,尽管有颜色管理,但仍然需要自定义配置文件或编辑的配置文件。颜色配置文件取决于浏览器、操作系统 (OS)、OS 扩展、输出设备和应用程序支持。
应用颜色校正会降低 Flash 运行时的性能。Flash 运行时的颜色校正是文档样式的颜色校正,因为所有 SWF 影片都被视为带有隐式 sRGB 配置文件的文档。向显示色彩空间显示 SWF 文件(文档)时,使用
三个可能的值是在 flash.display.ColorCorrection 类中具有对应常数的字符串。
在具有滑出式键盘的设备上,在确定设备方向时,键盘的状态比加速计检测到的旋转有更高的优先级。因此,在具有侧装式键盘的纵向长宽比设备上,无论用户如何手持设备,当键盘打开时
设置或比较此属性的值时,使用 StageOrientation 类中定义的常量。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或用于电视的 AIR 设备不支持此功能。您可以使用
影片在全屏模式下的缩放行为由
以下限制适用于在 HTML 页内播放的 SWF 文件(而不是使用独立 Flash Player 播放的文件或不在 AIR 运行时中运行的文件):
HTML 页还可以使用脚本生成 SWF 嵌入标签。您需要修改脚本,以使其插入正确的
当用户进入全屏模式时,将在影片上面显示一个 Flash 运行时对话框,告诉用户已经进入了全屏模式,并可以按 Esc 键退出全屏模式。
对于在独立 Flash Player 或 AIR 中运行的 SWF 内容,不存在这些限制。AIR 支持允许键盘输入的交互式全屏模式。
对于以全屏模式运行的
在 Linux 上,将
注意:出于安全方面的限制,只有在某些情况下才能触发全屏,例如,如果用户单击了鼠标或按了键盘键。在浏览器中运行时,allowFullScreen 属性必须设置为 true。
注意:应用程序可能由于以下原因而无法支持高帧速率设置:目标平台不够快或播放器与显示设备的垂直空白时间(在 LCD 设备上通常为 60 Hz)同步。在某些情况下,如果目标平台将占用高 CPU 使用率,它可能还会选择降低最大帧率。
对于在 Adobe AIR 中运行的内容,设置一个 Stage 对象的
注意:在检索值和变为全屏大小之间,如果用户有机会将浏览器从一台显示器移到另一台显示器,则该值可能不正确。如果在将
如果将
注意:应在浏览器中测试此示例。在“Flash 发布设置”对话框的“HTML”选项卡上,选择“仅 Flash - 允许全屏”模板。指定 Flash Player 的 9.0.115.0 版本,并确保在“格式”选项卡中选择了 Flash 和 HTML 格式。然后,发布生成的 HTML 文件,并在浏览器中打开该文件。
如果将此属性设为有效矩形并将
仅当 Flash 运行时未处于全屏模式时,才能设置此属性。要正确使用此属性,应先设置此属性,然后将
要启用缩放功能,请将
要禁用缩放功能,请在 ActionScript 3.0 中设置
最终用户还可以在“Flash Player 显示设置”中进行选择以关闭硬件缩放功能,默认情况下,将启用此功能。有关详细信息,请参阅
在使用带有硬件缩放的全屏模式之前,必须具备以下条件:
使用 NetConnection and NetStream 对象加载了一个 FLV 文件。由于 FLV 文件与 SWF 文件在同一目录中并且将通过 HTTP 进行连接,所以
在可以访问所加载 SWF 文件的属性和方法时,会调用
注意:在检索值和变为全屏大小之间,如果用户有机会将浏览器从一台显示器移到另一台显示器,则该值可能不正确。如果在将
如果将
注意:应在浏览器中测试此示例。在“Flash 发布设置”对话框的“HTML”选项卡上,选择“仅 Flash - 允许全屏”模板。指定 Flash Player 的 9.0.115.0 版本,并确保在“格式”选项卡中选择了 Flash 和 HTML 格式。然后,发布生成的 HTML 文件,并在浏览器中打开该文件。
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将
当您使用 Sprite 类的实例(而不是使用 SimpleButton 类)来创建按钮时,此属性很有用。当您使用 Sprite 实例来创建按钮时,可以选择使用
设置此属性不会调度任何事件。您必须使用
窗口表示本机操作系统的窗口,舞台表示窗口所包含的内容。此属性仅对在支持 NativeWindow 类的平台上的 AIR 中运行的内容有效。在其他平台上,此属性将为
要设置舞台方向,请使用
重要说明:从 2.6 命名空间开始,在 Android 设备上支持 orientation 属性。
较高的品质设置可以使缩放的位图得到较好的呈现品质。不过,较高的品质设置从运算角度看更昂贵。尤其在呈现缩放的视频时,使用较高的品质设置可以降低帧速率。
在 Adobe AIR 的桌面配置文件中,
对于在 Adobe AIR 中运行的内容,设置一个 Stage 对象的
如果将
当软键盘不可见时,此区域的大小为零 (0,0,0,0)。
当键盘打开时,
注意:在 Android 上,如果操作系统没有提供准确确定区域所需的信息,则将估计键盘覆盖的区域。在全屏模式下,以及打开键盘以相应 InteractiveObject 接收焦点或调用
如果将
设置
注意:在承载 SWF 文件的 HTML 页上,
一次只能使用有限数量的 StageVideo 对象。SWF 开始运行时,可用 StageVideo 对象的数量取决于平台以及可用硬件。
要使用 StageVideo 对象,请将
所有 StageVideo 对象都显示在舞台上,位于所有显示对象后面。StageVideo 对象以它们在
使用
注意:用于电视的 AIR 设备仅支持一个 StageVideo 对象。
如果将
设置
注意:在承载 SWF 文件的 HTML 页上,
您可以使用此列表中包括的方向字符串作为
可能的方向包括:
注意:不要将
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的宽度为 0,即使您尝试将
具体来说,
换句话说,
对于位于浏览器中的 Flash Player,可由承载 SWF 文件的页面中的
但是,
注意:从运行时首次执行渲染传递之前运行的 ActionScript 引用此属性时,此属性始终为
创建窗口后,不能更改初始化选项中定义的属性。
注意:对于由 AIR 自动创建的初始应用程序窗口,所有这些属性(
新创建的对象的默认值为:
对于带有系统镶边的窗口,此设置将影响窗口最大化按钮的外观。它还将影响系统管理的用户界面的其他部分,比如 Microsoft Windows 中的窗口菜单。
设置为
操作系统行为注意事项:
对于带有系统镶边的窗口,此设置将影响窗口最小化按钮的外观。它还将影响系统管理的用户界面的其他部分,比如 Microsoft Windows 中的窗口菜单。
设置为
注意:即使在
当窗口具有所有者时,该窗口始终显示在其所有者的前面,随其所有者一起最小化和隐藏,在其所有者关闭时关闭。
设置为
操作系统行为注意事项:
镶边指的是允许用户控制窗口的桌面属性的窗口控件。系统镶边使用桌面环境的标准控件,其中可以运行 AIR 应用程序,并符合本机操作系统的标准外观。
要使用由框架(诸如 Flex)提供的镶边,或要提供您自己的窗口镶边,请将
用作此属性的有效值的常数在 NativeWindowSystemChrome 类中定义:
如果未指定,
对于带有系统镶边的窗口,不支持将
如果为
对于带有系统镶边的窗口,不支持将
注意:并非所有 Linux 窗口管理器都支持透明效果。在这种系统上,窗口的透明区域为与黑色的复合色。
用作此属性的有效值的常量在 NativeWindowType 类中定义:
如果未指定,
表示 Shader 实例的参数的 ShaderParameter 实例将作为 Shader 实例的
除了 ShaderParameter 类的已定义属性外,每个 ShaderParameter 实例还具有与为参数定义的任何元数据对应的附加属性。创建 ShaderParameter 对象时会将这些属性添加到该对象中。这些属性的名称与着色器源代码中指定的元数据名称相匹配。每个属性的数据类型因对应元数据的数据类型而异。文本元数据值(如“description”)是 String 实例。具有非字符串值(如
例如,假设一个着色器包括以下两个参数声明:
对应于
对应于
通常,开发人员代码不直接创建 ShaderParameter 实例。在创建 Shader 实例时,将为着色器的每个参数创建一个 ShaderParameter 实例。
下表表示参数类型以及
对于矩阵参数类型,数组元素将填充矩阵的行,然后填充列。例如,假设使用以下 ActionScript 行来填充名为
在着色器内,矩阵元素具有以下值:
例如,假设有两种颜色之间的简单线性渐变(
您可以通过以下两种方法访问 LoaderInfo 对象:
Loader 对象的
当使用 Loader 对象加载显示对象(如 SWF 文件或位图)时,显示对象的
下图显示了对于 SWF 文件主类实例、Loader 对象的
在加载操作未完成时,Loader 对象的
注意:LoaderInfo 对象的所有属性都是只读的。
重要提示:该示例要求您在编译的 SWF 文件所在的目录中添加一个名为 Image.gif 的文件。使用具有一个适合主 SWF 文件尺寸的区域的图像。
例如,在加载影片或动画的第一帧时将调度
注意:此属性始终具有值
SWF 文件中的所有代码被定义为存在于应用程序域中。主应用程序就在当前的应用程序域中运行。系统域包含所有应用程序域,包括当前域和由 Flash Player 或 Adobe AIR 使用的所有类。
所有应用程序域(系统域除外)都有关联的父域。主应用程序的
有关应用程序域的使用示例,请参阅《ActionScript 3.0 开发人员指南》中的“客户端系统环境”一章。
在此 LoaderInfo 对象相应的 Loader 对象调度第一个
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
此值可能与使用时的实际帧速率不同。Flash Player 或 Adobe AIR 在任何时候为所有加载的 SWF 文件只使用单个帧速率,此帧速率由主 SWF 文件的标称帧速率确定。此外,根据硬件、声音同步和其他因素,可能无法达到主帧速率。
注意:
对于 AIR 中的应用程序内容,该属性的值始终为
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
可以使用
参数的两个源为:主 SWF 文件的 URL 中的查询字符串和
Loader 对象(该对象包含使用 ActionScript 1.0 或 2.0 的 SWF 文件)的
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:
当与此 LoaderInfo 关联的 SWF 完成加载时,会创建此属性。在此之前,
在构造函数中,代码为由 LoaderInfo 对象的
在
在此 LoaderInfo 对象的对应 Loader 对象调度第一个
在某些情况下,
此类允许您将位图呈现操作与 Flash Player 的内部显示更新例程分隔开来。通过直接操作 BitmapData 对象,您可以创建复杂的图像,不会因连续重新绘制矢量数据的内容而产生每帧开销。
BitmapData 类的方法支持通过可用于非位图显示对象的滤镜无法得到的效果。
BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图,或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。
每个 32 位整数都是四个 8 位通道值(从 0 到 255)的组合,这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。(对于 ARGB 值,最高有效字节代表 Alpha 通道值,其后的有效字节分别代表红色、绿色和蓝色通道值。)
将这四个通道(Alpha、红色、绿色和蓝色)与
通过使用 Bitmap 对象的
可以使用
在 AIR 运行时中,DockIcon、Icon、InteractiveIcon 和 SystemTrayIcon 类中的每个类都包括一个
在 AIR 1.5 和 Flash Player 10 中,BitmapData 对象的最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果 BitmapData 对象的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。
如果 BitmapData 对象无效(例如,如果它的
注意:
默认情况下,将位图创建为透明位图,除非您为
在 AIR 1.5 和 Flash Player 10 中,BitmapData 对象的最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果 BitmapData 对象的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。如果指定的宽度值或高度值大于 2880,则不会创建新实例。
此方法依赖于内置滤镜对象的行为,这些对象确定受输入源矩形影响的目标矩形。
应用滤镜后,结果图像可能会大于输入图像。例如,如果使用 BlurFilter 类来模糊源矩形 (50,50,100,100),并且目标点为 (10,10),则在目标图像中更改的区域将会由于该模糊处理而大于 (10,10,60,60)。这会在
如果
如果 BitmapData 对象和指定为
例如,考虑下面两个 BitmapData 对象:
注意:用于填充这两个 BitmapData 对象的颜色具有略微不同的 RGB 值(0xFF0000 和 0xFFAA00)。
以下面两个 BitmapData 对象为例,其中 RGB 颜色相同,但 Alpha 值不同。
如果 BitmapData 对象相同(宽度、高度和像素值都相同),则方法返回数字 0。
如果这两个 BitmapData 对象的宽度不相等,则该方法返回数字 -3。
如果 BitmapData 对象的高度不相等,但宽度相同,则方法返回数字 -4。
以下示例比较两个具有不同宽度(50 和 60)的 Bitmap 对象:
源通道值和目标通道值可以是下列值之一:
如果包括
对图像调用
在将
此方法与如何在创作工具界面中使用对象的标准矢量渲染器来绘制对像直接对应。
源显示对象不对此调用使用其任何已应用的转换。它会被视为存在于库或文件中,没有矩阵转换、没有颜色转换,也没有混合模式。要使用对象自己的 transform 属性来绘制显示对象(如影片剪辑),可以将其
在
如果 source 对象和其所有子对象(如果是 Sprite 或 MovieClip 对象)与调用方不来自同一个域,或者不在调用方可通过调用
对于使用所加载的位图图像作为
在 Windows 中,
例如,模糊滤镜影响的区域通常比原始图像大。由一个默认 BlurFilter 实例过滤的 100 x 200 像素图像,其中
有些滤镜会基于源图像大小裁剪其目标矩形。例如,一个内部
例如,如果有一个源图像并且想要确定包含非零 Alpha 通道的图像矩形,请传递
BitmapData 对象中的所有像素都作为预乘颜色值进行存储。预乘图像像素具有已经与 Alpha 数据相乘的红色、绿色和蓝色通道值。例如,如果 Alpha 值为 0,则 RGB 通道的值也为 0,与它们未经过相乘的值无关。这种丢失数据的情况可能会在执行操作时导致一些问题。所有 BitmapData 方法都采用并返回未经过相乘的值。内部像素表示形式在其作为值返回之前从经过预乘的形式转换为未经过相乘的形式。在设置操作过程中,设置原始图像像素之前,像素值是经过预乘的。
BitmapData 对象中的所有像素都作为预乘颜色值进行存储。预乘图像像素具有已经与 Alpha 数据相乘的红色、绿色和蓝色通道值。例如,如果 Alpha 值为 0,则 RGB 通道的值也为 0,与它们未经过相乘的值无关。这种丢失数据的情况可能会在执行操作时导致一些问题。所有 BitmapData 方法都采用并返回未经过相乘的值。内部像素表示形式在其作为值返回之前从经过预乘的形式转换为未经过相乘的形式。在设置操作过程中,设置原始图像像素之前,像素值是经过预乘的。
如果某个图像是不透明图像,则此方法会将其视为完全不透明的矩形。两个图像必须是透明图像才能执行判断透明度的像素级点击测试。当您在测试两个透明图像时,Alpha 阈值参数将控制哪些 Alpha 通道值(从 0 到 255)将被视为是不透明的。
Flash 运行时通过下列步骤生成结果图像:
此方法可以支持跨通道效果。每个输入数组可以包含完整的 32 位值,并且在将这些值相加到一起时不会发生任何移位。此例程不支持按通道锁定。
如果没有为通道指定数组,则颜色通道会从源图像复制到目标图像。
您可以为多种效果(例如,常规调色板映射)使用此方法(采用一个通道并将其转换为假颜色图像)。您也可以为各种高级颜色操作算法(例如,灰度系数、曲线、级别和量化)使用此方法。
Perlin 杂点生成算法会内插单个随机杂点函数名为 octave 并将它们组合成一个函数,该函数生成多个看起来很自然的随机杂点。就像音乐上的八音度,每个 octave 函数的频率都是其前面一个 octave 函数频率的两倍。Perlin 杂点被描述为“杂点的碎片总和”,因为它将多组杂点数据与不同级别的细节组合在一起。
您可以使用 Perlin 杂点函数来模拟自然现象和风景,例如,木材纹理、云彩或山脉。在大多数情况下,Perlin 杂点函数的输出不会直接显示出来,而是用于增强其他图像并为其他图像提供伪随机变化。
简单的数字随机杂点函数通常生成具有粗糙的对比度点的图像。这种粗糙的对比度在自然界中通常是找不到的。Perlin 杂点算法混合了在不同的详细级别上进行操作的多个杂点函数。此算法在相邻的像素值间产生较小的变化。
如果源图像不等于目标图像,则会使用所有的属性将像素从源复制到目标。此过程允许从空白图像溶解到完全填充的图像。
如果源图像和目标图像相等,则使用
BitmapData 对象中的所有像素都作为预乘颜色值进行存储。预乘图像像素具有已经与 Alpha 数据相乘的红色、绿色和蓝色通道值。例如,如果 Alpha 值为 0,则 RGB 通道的值也为 0,与它们未经过相乘的值无关。这种丢失数据的情况可能会在执行操作时导致一些问题。所有 BitmapData 方法都采用并返回未经过相乘的值。内部像素表示形式在其作为值返回之前从经过预乘的形式转换为未经过相乘的形式。在设置操作过程中,设置原始图像像素之前,像素值是经过预乘的。
注意:要提高性能,请在重复使用
注意:要提高性能,请在重复使用
AVM2 SWF 文件加载 AVM1 SWF 文件具有几个限制:
表示 Shader 实例的输入图像的 ShaderInput 实例将作为 Shader 实例的
对于 Shader 实例的某些用法,您无需指定输入图像,因为操作会自动指定输入图像。您只需要在 Shader 用于以下各项时指定输入:
如果正在使用 ShaderJob 实例执行着色器来处理包含线性数据数组的 ByteArray,请在 ByteArray 中将 ShaderInput 实例的
通常,开发人员代码不直接创建 ShaderInput 实例。在创建 Shader 实例时,将为着色器的每个输入创建一个 ShaderInput 实例。
如果将 ByteArray 值赋予
如果将 Vector.<Number> 实例赋予
着色器定义对图像中的所有像素执行的函数(一次一个像素)。对该函数的每次调用的结果都是图像中该像素坐标处的输出颜色。着色器可以指定一个或多个输入图像,这些图像的内容可用于确定函数的输出。着色器还可以指定一个或多个参数,这些参数是可用于计算函数输出的输入值。在单一着色器执行中,输入和参数值是常量。唯一发生变化的是像素(其颜色是函数结果)的坐标。针对多个输出像素坐标的着色器函数调用将并行执行,以改进着色器执行性能。
可以使用 URLLoader 实例在运行时加载着色器字节码。下面的示例演示如何在运行时加载着色器字节码文件并将其链接到一个 Shader 实例。
您还可以使用
在任何一种情况下,都可以将原始着色器(
创建了 Shader 实例后,即可通过以下若干方式之一使用该实例:
在 GPU 呈现下不支持着色器填充、滤镜和混合。
移动浏览器支持:在移动浏览器中不支持此功能。
AIR 配置文件支持:所有桌面操作系统均支持此功能,但所有移动设备均不支持此功能。用于电视的 AIR 设备不支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅
请注意,此示例假设应用程序输出目录所在的同一目录中有一个名为“donothing.pbj”的着色器字节码文件。
请注意,此示例假设应用程序源代码所在的同一目录中有一个名为“donothing.pbj”的着色器字节码文件,并且使用了 Flex SDK 来编译 SWF。
有关访问和处理
默认值为
full 精度模式 (
fast 精度模式 (
精度模式选择将影响以下着色器操作。在包含 SSE 指令集的 Intel 处理器上,这些操作的执行速度较快:
不同于 Sprite 对象,MovieClip 对象拥有一个时间轴。
> 在 Flash Professional 中,MovieClip 类使用的方法提供的功能与定位影片剪辑的操作相同。还有一些其他方法在 Flash 创作工具的“动作”面板中的“动作”工具箱中没有等效动作。
在 Flash Professional 中放到舞台上的子实例无法由父实例构造函数中的代码进行访问,因为在执行代码时尚未在该位置创建这些实例。在访问子实例之前,父实例必须通过代码创建子实例,或者延迟访问用于侦听子实例以调度其
如果修改包含补间动画的 MovieClip 对象的下列任一属性,该 MovieClip 对象中的播放头便会停止:
注意:仅当定义了 FEATURE_BITMAPCACHE 后 Flash Lite 4 才支持 MovieClip.opaqueBackground 属性。Flash Lite 4 的默认配置不会定义 FEATURE_BITMAPCACHE。要为合适的设备启用 MovieClip.opaqueBackground 属性,请在您的项目中定义 FEATURE_BITMAPCACHE。
如果影片剪辑包含多个场景,
如果影片剪辑包含多个帧,
可以随时更改
定义常量以命名窗口的每条边和每个角。
调用某些方法时,您可以使用按位 OR (
提供的 BitmapDataChannel 常数用作以下参数或属性的值:
将 GraphicsSolidFill 对象与
下例显示了使用各种 spread 方法的同一渐变填充:
将 GraphicsShaderFill 对象与
着色器中收到的坐标基于为
传递 Shader 实例作为参数时,将在内部复制着色器,并且绘制填充操作将使用该内部副本(而不是对原始着色器的引用)。对着色器进行的任何更改(比如更改参数值、输入或字节代码)不会应用于所复制的用于填充的着色器。
Sprite 类也包括
请注意,即使参数只要求单一值,
请注意,即使参数只要求单一值,
请注意,即使参数只要求单一值,
当路径相交或重叠时,缠绕方向将确定由相交或重叠创建的区域的填充规则:
将 GraphicsPath 对象与
GraphicsPath 还具有一组自己的方法(
此类中的这些值由