NativeProcess 类及其功能只对使用本机安装程序安装的 AIR 应用程序(扩展桌面配置文件应用程序)可用。调试时,可将
AIR 配置文件支持:通过本机安装程序部署到桌面操作系统的应用程序支持此功能。移动设备或用于电视的 AIR 设备上不支持此功能。您可以使用
使用本机安装程序安装的 AIR 应用程序(扩展桌面配置文件应用程序)也可以使用
注意:使用
#!/usr/bin/python # ------------------------------------------------------------------------------ # Sample Python script # ------------------------------------------------------------------------------ import sys for word in sys.argv: #echo the command line arguments print word print "HI FROM PYTHON" print "Enter user name" line = sys.stdin.readline() sys.stdout.write("hello," + line)
如果
如果
如果 NativeProcess 成功退出,它会调度
一个 NativeProcess 实例对应于基础操作系统上的一个进程。如果要同时执行同一个操作系统进程的多个实例,您可以为每个子进程创建一个 NativeProcess 实例。
每当 NativeProcess 对象的
NativeProcess 类及其功能只对使用本机安装程序安装的 AIR 应用程序可用。调试时,可将
重要安全注意事项:
本机进程 API 可以在用户系统上运行任何可执行文件。构造和执行命令时要格外小心。如果要执行的命令的任何部分来自外部源,务必仔细验证该命令可以安全执行。同样,AIR 应用程序应对传递给正在运行的进程的数据进行验证。
但是,对输入进行验证可能十分困难。为了避免这种困难,最好编写具有特定 API 的本机应用程序(如 Windows 上的 EXE 文件)。这些 API 应该只处理 AIR 应用程序特别要求的命令。例如,本机应用程序可能只通过标准输入流接受有限的一组指令。
Windows 上的 AIR 不允许直接运行 .bat 文件。Windows .bat 文件是由命令解释程序应用程序 (cmd.exe) 执行的。调用 .bat 文件时,此命令应用程序可以将传递给该命令的参数解释为要启动的其他应用程序。在参数字符串中恶意注入额外字符可能导致 cmd.exe 执行有害的或不安全的应用程序。例如,在没有经过正确的数据验证的情况下,AIR 应用程序可能会调用
如果使用 .bat 文件调用
此类型为 IDataInput,因为数据是从当前进程的角度输入的,即使它是子进程的输出流也如此。
此类型为 IDataOutput,因为数据是从当前进程的角度输出的,即使它是子进程的输入流也如此。
此类型为 IDataInput,因为数据是从当前进程的角度输入的,即使它是子进程的输出流也如此。
使用 NativeApplication 对象的
不能直接实例化 InteractiveIcon 类。调用
当在给定的操作系统上下文中显示图标时,将使用数组中最接近所显示大小的位图(必要时进行缩放)。常用的大小包括 16x16、32x32、48x48 和 128x128。(在不远的将来,某些操作系统将可以使用 512x512 像素的图标。)
在某些上下文中,如果没有为
要设置或更改图标外观,请将 BitmapData 对象数组分配给
直接修改
要清除图标图像,请为
注意:在为图标加载图像文件时,PNG 文件格式通常提供最佳 Alpha 混合。GIF 格式只支持打开或关闭透明度(无混合)。JPG 格式完全不支持透明度。
某些图标上下文支持动态大小。
某些图标上下文支持动态大小。
NativeDragActions 常量用作 NativeDragManager 和 NativeDragEvent 类的
在
NativeApplication 类提供应用程序信息、应用程序范围内的函数,并调度应用程序级别的事件。
NativeApplication 对象是一个在启动时自动创建的单一对象。使用静态属性
注意: 此事件不在移动设备或用于电视的 AIR 设备上调度。
视为空闲的时间段可以使用
使用
注意: 此事件不在移动设备或用于电视的 AIR 设备上调度。
注意:
当操作系统启动应用程序退出时将调度
用于电视的 AIR 设备从不调度
注意:调用 NativeApplication 的
只有当应用程序在应用程序描述符文件中指定如下内容时才允许浏览器调用:
第二次调用某个应用程序时,不会启动该应用程序的另一个实例。第一个实例将接收附加的 invoke 事件。应用程序负责适当地处理随后的
注意:所有
不支持 NativeWindow 类的平台上不支持此方法。
在由操作系统确定的某些情况下,此方法将不会激活应用程序。多数操作系统都限制应用程序自行激活的能力,以避免意外或恶意地使用户无法使用其他应用程序。
如果操作系统允许激活,则激活指定的窗口并将其放到桌面的前景;即放在其他应用程序窗口的前面。(如果
如果应用程序没有可视窗口,则
激活操作是同步的。
函数可以有任何名称。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将
成功注册一个事件侦听器后,无法通过额外调用
请记住,注册该侦听器后,如果继续调用具有不同
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。
如果不再需要某个事件侦听器,可调用
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
如果具有焦点的对象不实现该命令,则将忽略此函数调用。只有源于 TextField 或 HTMLLoader 类的显示对象当前实现此命令。
注意:
如果组件不实现该命令,则将忽略此函数调用。只有源于 TextField 或 HTMLLoader 类的显示对象当前实现此命令。
如果组件不实现该命令,则将忽略此函数调用。只有源于 TextField 或 HTMLLoader 类的显示对象当前实现此命令。
对
请注意,不会调度
注意:iOS 操作系统不支持此方法。
注意:此方法只能用于在应用程序描述符的
此方法不适用于用于电视的 AIR 设备。如果通过在应用程序描述符中声明的文件类型来调用它,将返回
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。您可以使用
如果组件不实现该命令,则将忽略此函数调用。只有源于 TextField 或 HTMLLoader 类的显示对象当前实现此命令。
注意:此方法只能用于在应用程序描述符的
如果组件不实现该命令,则将忽略此函数调用。只有源于 TextField 或 HTMLLoader 类的显示对象当前实现此命令。
注意:此方法只能用于在应用程序描述符的
如果活动的桌面窗口不属于此应用程序,或者没有活动的窗口,则
不支持 NativeWindow 类的平台不支持此属性。
此 ID 的值在应用程序描述符文件中设置。
当
不支持 NativeWindow 类的平台不支持此属性。
使用
默认情况下,空闲阈值为 300 秒(5 分钟)。值的可接受范围为 5(5 秒)到 86,400(1 天),这两个值自身包括在内。
当
AIR 配置文件支持:移动设备或用于电视的 AIR 设备不支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅
注意:在 Mac OS X 中,
不支持 NativeWindow 类的平台不支持此属性。
此 ID 的值在应用程序发布者 ID 文件中设置,该文件在安装时从用于对应用程序签名的证书链中生成。
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。您可以使用
如果为
如果为
Mac OS X 用户界面提供了一个应用程序“停靠栏”,其中包含正在运行或常用的应用程序的图标。
务必使用
如果为
务必使用
如果为
如果为
Windows 用户界面提供任务栏的“系统托盘”区域,它的正式名称为通知区域,在其中可以显示应用程序图标。不显示默认图标。必须设置图标对象的
务必使用
SystemIdleMode 类的值,可影响主机系统的空闲模式行为。此属性仅对具有输入焦点的应用程序有效,只能从应用程序沙箱中运行的内容访问。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或用于电视的 AIR 设备不支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅
仅桌面配置文件支持 Updater 类。扩展桌面应用程序(使用本机安装程序安装的应用程序)不支持此功能,AIR 移动配置文件或用于电视的 AIR 配置文件也不支持此功能。检查
扩展桌面应用程序(使用本机安装程序安装的应用程序)可以下载本机安装程序的新版本,并使用
调用此方法将导致当前应用程序退出(如同调用了
无论更新是否成功,更新过程都会重新启动该应用程序。更新可能因为各种原因而失败,包括应用程序无法控制(比如用户没有足够的权限来安装该应用程序)等原因。应用程序应该谨慎检测失败,避免反复重新尝试相同的失败更新。所造成的无限循环必将禁用该应用程序。检查更新是否成功的方法之一是在启动更新前将当前版本号码写到一个文件中,当应用程序重新启动后将该号码与版本号码进行比较。
在使用 AIR Debug Launcher (ADL) 应用程序测试某个应用程序时,调用
在 Mac OS 中,要安装某一应用程序的更新版本,用户需要具有足够的系统权限才能将新版本安装到应用程序目录中。在 Windows 或 Linux 中,用户需要具有管理权限。
如果应用程序的更新版本要求 运行时的更新版本,则应安装新的运行时版本。要更新运行时,用户需要具有计算机的管理员权限。
注意:出于安全方面的原因,需要指定
AIR 配置文件支持:桌面操作系统支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅
不是所有桌面操作系统都有系统任务栏图标。检查
无法创建 SystemTrayIcon 类的实例。从“全局的”NativeApplication 对象的
如果支持系统任务栏图标,则 icon 将为 SystemTrayIcon 类型。否则,
重要说明:在 AIR 不支持系统任务栏图标的操作系统上尝试对
当在给定的操作系统上下文中显示图标时,将使用数组中最接近所显示大小的位图(必要时进行缩放)。常用的大小包括 16x16、32x32、48x48 和 128x128。(在不远的将来,某些操作系统将可以使用 512x512 像素的图标。)
在某些上下文中,如果没有为
要设置或更改图标外观,请将 BitmapData 对象数组分配给
直接修改
要清除图标图像,请为
注意:在为图标加载图像文件时,PNG 文件格式通常提供最佳 Alpha 混合。GIF 格式只支持打开或关闭透明度(无混合)。JPG 格式完全不支持透明度。
某些图标上下文支持动态大小。
某些图标上下文支持动态大小。
Clipboard 对象可以包含多种格式的相同信息。通过以多种格式提供信息,可以增加另一个应用程序能够使用该信息的机会。使用
标准格式是:
ClipboardFormats 类中定义了用作标准格式的名称的这些常量。
当传输到操作系统或从操作系统接收传输时,将在
可以使用应用程序定义的格式将
如果将待传输的信息转换成特殊格式时运算成本很高,则可以提供执行该转换的函数名称。当且仅当接收组件或应用程序能够读取该格式时,才能调用此函数。使用
关于 AIR 应用程序的注意事项:为 HTML 拖放以及复制和粘贴事件调度的事件对象所引用的剪贴板对象与 AIR Clipboard 对象的类型不同。JavaScript 剪贴板对象在 AIR 开发人员指南中进行了说明。
关于 Flash Player 应用程序的注意事项:在 Flash Player 10 中,从剪贴板执行的粘贴操作首先要求发生用户事件(例如,按下“粘贴”命令的快捷键或用鼠标单击上下文菜单中的“粘贴”命令)。只有在 InteractiveObject 已收到粘贴事件并对其进行操作的情况下,
在 Linux 上,关闭 AIR 应用程序时,不会保留剪贴板数据。
注意:由于对访问剪贴板数据具有安全限制,因此该示例在 Flash Player 中不适用。在 Flash Player 中,只能在
创建 Clipboard 对象以将本机拖放手势数据保留在 Adobe AIR 中。Clipboard 对象只能用于一个拖放手势,无法重复使用。
不要为复制粘贴操作创建 Clipboard 对象。而应使用单一
注意:对于涉及操作系统剪贴板的复制并粘贴操作,请使用
Flash Player 要求在
访问标准数据格式时,将以相应 Flash 数据类型的新对象的形式返回数据。
在访问应用程序定义的格式时,
使用 ClipboardFormats 类中的常量引用标准格式名称。
使用处理函数将数据的创建或呈现延迟到实际访问数据时。
处理函数必须返回适合指定格式的相应数据类型:
当且仅当读取指定格式的数据时才会调用该处理函数。请注意,在某些情况下,操作系统在放置操作发生前调用此函数。例如,当使用处理函数为从 AIR 应用程序拖到文件系统的文件提供数据时,只要拖动手势一离开 AIR 应用程序,操作系统就立即调用数据处理函数 — 通常在下载或创建文件数据时导致意外暂停。您也可以使用 URLFilePromise 来完成此任务。
请注意,在添加处理函数时和读取数据时之间,基础数据可能会发生更改,除非应用程序采取一些措施来保护数据。多次读取剪贴板中由处理函数表示的数据时发生的行为没有保证。剪贴板可能返回由第一个函数调用生成的数据,也可能再次调用该函数。不要依赖任一行为。
在 Adobe AIR 的应用程序沙箱中,可随时调用
要直接向此 Clipboard 对象添加数据,请改用
注意:在 Mac OS 上,如果将
在 Adobe AIR 应用程序沙箱中,可随时调用
可以将相同信息的不同表示形式以不同格式添加到剪贴板,这可提高其他组件或应用程序利用可用数据的能力。例如,图像可作为位图数据添加以供图像编辑应用程序使用,也可作为 URL 和编码的 PNG 文件添加以传输到本机文件系统。
data 参数必须是适用于指定格式的相应数据类型:
自定义格式名称不能以“air:”或“flash:”开头。为了避免在使用自定义格式时发生命名冲突,您可能希望使用应用程序 ID 或包名称作为格式的前缀,如“com.example.applicationName.dataPacket”。
当在应用程序内或 AIR 应用程序之间传输时,
注意:当在支持的应用程序外部粘贴或拖动数据时,标准格式总是转换为本机格式,因此
要延迟呈现某一格式的数据,请改用
注意:在 Mac OS 上,如果将
用作标准格式名称的字符串常量在 ClipboardFormats 类中定义。应用程序定义的其他字符串也可以用作格式名称,以将数据作为对象传输。
粘贴到系统剪贴板中的任何数据均对其他应用程序可用。这可能包括网络浏览器中运行的不安全的远程代码。
注意:在 Flash Player 10 应用程序中,从剪贴板执行的粘贴操作会首先需要发生用户事件(例如,按下“粘贴”命令的快捷键或用鼠标单击上下文菜单中的“粘贴”命令)。只有在 InteractiveObject 已收到粘贴事件并对其进行操作的情况下,
在向剪贴板中写入新数据之前,应始终清理剪贴板,以确保擦除所有格式的旧数据。
无法将
file promise 是拖放剪贴板格式,允许用户拖动 AIR 应用程序外尚不存在的文件。AIR 使用 IFilePromise 接口定义的方法和属性访问要在放置 file promise 时写入的数据。
将 file promise 放置在合适的目标上后,AIR 会调用 IFilePromise
如果以同步方式访问数据提供程序中的数据(例如,使用 ByteArray 访问),则 AIR 将读取 IDataInput
如果以异步方式访问数据提供程序中的数据(例如,使用 Socket 访问),则 AIR 将使用提供程序调度的事件控制读取数据和将数据写入文件的过程。在每个 progress 事件中读取数据,直到接收到 complete 或 close 事件。运行时侦听下列事件(但是数据提供程序不需要调度每个事件):
自定义数据提供程序类应在存在可用数据时调度
IFilePromise 定义的方法仅为 AIR 运行时在完成拖放操作后进行调用。开发人员通常不应从他们自己的代码调用这些方法。
注意:air.desktop 库中提供的 URLFilePromise 类可实现 IFilePromise 接口并将 URLStream 用作数据提供程序。air.desktop 库作为单独的 SWF 和 SWC 文件包含在 AIR SDK 中。
在调用
数据提供程序对象必须实现 IDataInput 接口,该接口定义读取数据的方法。如果 IFilePromise
您还可以提供实现所需接口(或扩展实现这些接口的其他类)的自定义类的对象。
如果为
如果
此属性必须提供有效的路径,否则在放置 file promise 时会引发参数错误。
路径可以包括子目录(根据放置位置进行解析)。根据需要创建子目录。当包括子目录时,使用
注意:若要允许客户端代码设置路径,可以实现带有签名的 setter 函数:
本机进程访问只对使用本机安装程序安装的 AIR 应用程序(扩展桌面配置文件中的应用程序)可用。
无论
注意:在 Mac OS 上,若要启动应用程序包中的可执行文件,请确保使 File 对象的路径包含可执行文件(位于包内)的完整路径,而不只是该 app 文件的路径。
在 Android 上,应用程序必须在应用程序描述符中为 DISABLE_KEYGUARD 和 WAKE_LOCK 指定 Android 权限,否则操作系统会忽略此设置。
传输模式提供有关访问剪贴板中所包含的对象时是返回一个引用还是返回一个副本的提示。
可以传输以下几种数据:
注意:所有 NativeDragManager 成员都是静态的。不需要创建此类的实例。
拖放操作是一种用户界面手势,从用户单击某一可见项并将其拖动到别处开始。在执行拖动手势期间,当手势越过 AIR 应用程序窗口时,显示列表上的交互式对象将调度本机拖动事件。这些事件的处理函数可以调用 NativeDragManager 类的方法,以表示是否可以在对象上放置拖动项。作为响应,NativeDragManager 会更改鼠标指针以向用户提供反馈。
AIR 配置文件支持:用于电视的 AIR 设备不支持此功能。所有移动设备上也不支持它。您可以使用
拖动动作
拖放手势通常用于三种类型的操作,这些操作称为动作。由于这些动作的含义取决于应用程序的上下文,因此,运行时不会针对动作强制执行任何特定行为。不过,适当地实现这些动作会改善用户使用应用程序时的体验。
可能的动作包括:
通过在开始拖动操作的
如果拖动目标只实现一个动作,则此对象可以设置
在接受拖动时,潜在的拖动目标应通过设置
用作动作名称的字符串常量在 NativeDragActions 类中定义。
事件序列
拖动手势从调用
应用程序之间的手势
当拖动手势从非 AIR 应用程序进入 AIR 应用程序窗口时,不会有启动器对象调度
当拖动手势离开 AIR 应用程序窗口时,不会有目标对象调度
如果拖动手势从一个 AIR 应用程序移动到另一个 AIR 应用程序,启动器和目标显示对象将照常在其各自的应用程序内调度事件。
传输信息
在拖放手势期间传输的数据包含在 Clipboard 对象中。此数据对象是使用启动拖动手势的
安全注意事项
启动器和潜在目标对象的安全沙箱确定可以何种方式访问所拖动的数据。如果两个对象在同一个沙箱中,则可以从任一 NativeDragEvent 对象访问数据。不过,如果启动器和目标对象在不同的沙箱中,则只能在
只有在指定目标对象上具有可处理拖动项中至少一种数据格式和至少一种允许动作的
只能在
启动拖动操作:
启动器对象在调用此方法后将调度一个
只能从
拖动动作是反馈机制的一部分,旨在使启动对象和目标对象在拖放交换中得以协调。动作只是对操作系统的一个提示。实现适当的行为取决于事务中涉及的拖动启动器和目标对象。
启动对象应只允许它支持的动作。例如,只有在启动对象的内部逻辑将在目标接受移动动作的放置时删除源数据的情况下,启动对象才应允许移动 动作。
新 NativeDragOptions 对象的所有属性都初始化为
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备或用于电视的 AIR 设备不支持此功能。您可以使用
可以使用 DockIcon 类来更改标准图标的外观,例如使图标具有动画效果或添加信息性图形。也可以向停靠图标菜单中添加项目。您添加的菜单项将显示在标准菜单项之上。
无法创建 DockIcon 类的实例。从
不是所有操作系统都有停靠图标。检查
重要说明:在 AIR 不支持停靠图标的操作系统上尝试对
当且仅当应用程序处于后台时,调用此方法将回弹停靠图标。如果
当在给定的操作系统上下文中显示图标时,将使用数组中最接近所显示大小的位图(必要时进行缩放)。常用的大小包括 16x16、32x32、48x48 和 128x128。(在不远的将来,某些操作系统将可以使用 512x512 像素的图标。)
在某些上下文中,如果没有为
要设置或更改图标外观,请将 BitmapData 对象数组分配给
直接修改
要清除图标图像,请为
注意:在为图标加载图像文件时,PNG 文件格式通常提供最佳 Alpha 混合。GIF 格式只支持打开或关闭透明度(无混合)。JPG 格式完全不支持透明度。
某些图标上下文支持动态大小。
菜单中的任何项目都将显示在标准项目之上。标准项目无法修改或删除。
某些图标上下文支持动态大小。
Icon 对象只有一个属性
当在给定的操作系统上下文中显示图标时,将使用数组中最接近所显示大小的位图(必要时进行缩放)。常用的大小包括 16x16、32x32、48x48 和 128x128。(在不远的将来,某些操作系统将可以使用 512x512 像素的图标。)
在某些上下文中,如果没有为
要设置或更改图标外观,请将 BitmapData 对象数组分配给
直接修改
要清除图标图像,请为
注意:在为图标加载图像文件时,PNG 文件格式通常提供最佳 Alpha 混合。GIF 格式只支持打开或关闭透明度(无混合)。JPG 格式完全不支持透明度。