Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 加载和运行现有AIR swf的AIR应用程序_Apache Flex_Actionscript 3_Air - Fatal编程技术网

Apache flex 加载和运行现有AIR swf的AIR应用程序

Apache flex 加载和运行现有AIR swf的AIR应用程序,apache-flex,actionscript-3,air,Apache Flex,Actionscript 3,Air,我有一个现有的AIR应用程序,其主要内容是app.swf。我想有另一个空气应用程序,主机和运行app.swf。当我说运行它时,我的意思是显示它的WindowedApplication 以下是两个AIR项目的代码(为简洁起见,省略了导入): 我认为这个问题与AirAppHostApplication的SystemManager与App的SystemManager冲突有关,因为他们都生活在同一个应用程序域中。如果WindowedApplication类不是静态定义的,而是通过加载swf并实例化swf

我有一个现有的AIR应用程序,其主要内容是app.swf。我想有另一个空气应用程序,主机和运行app.swf。当我说运行它时,我的意思是显示它的WindowedApplication

以下是两个AIR项目的代码(为简洁起见,省略了导入):

我认为这个问题与AirAppHostApplication的SystemManager与App的SystemManager冲突有关,因为他们都生活在同一个应用程序域中。如果WindowedApplication类不是静态定义的,而是通过加载swf并实例化swf中包含的WindowedApplication子类在运行时加载的,那么可以编写AIR应用程序吗

我想这样做的原因是为了一个自动化场景,在这个场景中,我必须假设我没有我正在自动化的应用程序的源代码,但是我可以访问为自动化而公开的公共类及其公共方法的名称。我完全可以控制环境,不必处理任何约束,因此我可以将2个AIR应用程序放在同一个目录中,等等


这可能吗?

是的,这是可能的。看看

从第二次空气应用程序称为打开空气应用程序

它说:

两者都需要的一件事是,您尝试启动的应用程序在AIR配置文件中的allowBrowserInvocation属性设置为true,并且应用程序安装在您的系统上

您还必须知道应用程序id和发布者id。例如,在my LauncherSample中,AIR配置文件中定义的应用程序id为:

plus告诉我们如何做到这一点

以下是Adobe对错误的描述

错误1009无法访问空对象引用的属性或方法

计算结果为null的对象不能有任何属性。在某些意外(尽管有效)情况下可能会发生此错误。例如,考虑下面的代码,创建一个SpRITE对象。由于此精灵对象从未添加到显示列表(通过DisplayObjectContainer对象的addChild()方法),因此其stage属性设置为null。因此,该示例生成此错误,因为Sprite对象的stage属性不能有任何属性:

import flash.display.Sprite;
var sprite1:Sprite = new Sprite();
var q:String = sprite1.stage.quality;

不,这是不可能的。每个AIR应用程序都有一个唯一的应用程序目录和一个唯一的存储目录。由于安全沙箱模型,应用程序无法访问其自身存储目录以外的内容。

谢谢您的回复,但我不想简单地从AIR应用程序启动另一个AIR应用程序。我想在另一个AIR应用程序中托管现有的AIR应用程序。这意味着托管应用程序和托管应用程序的代码都驻留在一个进程中。我更新了代码,使之更加清晰。
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at mx.managers::SystemManager/initHandler()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:3001]
import flash.display.Sprite;
var sprite1:Sprite = new Sprite();
var q:String = sprite1.stage.quality;