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
Flash AS3空中远程外部swf无法访问本地apk_Flash_Actionscript 3_Air - Fatal编程技术网

Flash AS3空中远程外部swf无法访问本地apk

Flash AS3空中远程外部swf无法访问本地apk,flash,actionscript-3,air,Flash,Actionscript 3,Air,我正在使用FlashCS5AIR扩展名开发一个android文件。 我知道基本的跨域策略和服务器到服务器的连接。我搜索了很多页面,但是没有解决这个问题的方法 我的“container.apk”从服务器加载“external.swf”。。我希望能够从“external.swf”访问“container.apk”中的变量和函数。 但是我无法从外部模块swf(远程文件)访问容器(application file.apk)上的任何函数。。我的意思是,我正试图从加载的swf中访问container.apk

我正在使用FlashCS5AIR扩展名开发一个android文件。 我知道基本的跨域策略和服务器到服务器的连接。我搜索了很多页面,但是没有解决这个问题的方法

我的“container.apk”从服务器加载“external.swf”。。我希望能够从“external.swf”访问“container.apk”中的变量和函数。 但是我无法从外部模块swf(远程文件)访问容器(application file.apk)上的任何函数。。我的意思是,我正试图从加载的swf中访问container.apk的函数就像当一个按钮点击“external.swf”时,它应该会影响“container.apk”中的一个函数。

这里还有一些我得到的错误代码

安全性错误:错误#2047:安全性沙盒冲突:父级:http://**.com/external.swf无法访问应用程序:/container.swf**

以及我的集装箱的装载功能

var l:Loader = new Loader;
var externalSWF:MovieClip;
var contextC:LoaderContext = new LoaderContext(); 
contextC.checkPolicyFile = false;
contextC.allowCodeImport = true;
l.load(new URLRequest(filePath), contextC);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);


function loadComplete(evt:Event){
    l.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
    externalSWF = l.content as MovieClip;
    MovieClip(root).addChild(externalSWF);
}

我认为这是设计的,加载的主权财富基金是沙箱

想象一下,你有一个Flash网站,想加载Flash游戏。如果加载的子级可以访问父级,那么恶意SWF可以通过加载程序SWF访问服务器

你试图做的事情更加危险也无济于事,通过访问APK及其权限,一个加载的SWF理论上可以接管手机


然而,它应该反过来工作,加载程序主机应该能够访问加载的SWF中的任何内容,因此我担心您必须在构建应用程序时牢记这一点。

我认为这是出于设计,加载的SWF是沙盒

想象一下,你有一个Flash网站,想加载Flash游戏。如果加载的子级可以访问父级,那么恶意SWF可以通过加载程序SWF访问服务器

你试图做的事情更加危险也无济于事,通过访问APK及其权限,一个加载的SWF理论上可以接管手机


然而,它应该反过来工作,加载程序主机应该能够访问加载的SWF中的任何内容,因此我担心您必须在设计应用程序时考虑到这一点。

但我是开发人员。我的意思是应该有一种方法来指定两个文件(容器和swf)以相互访问。就像“allowDomain”如何允许从特定网站访问一样,应该有允许外部文件访问容器的方法。你可能是开发人员,但是如果你的Web服务器被破坏,你的external.swf被替换,你可能会让你所有的安卓应用程序用户都崩溃。我不知道,也许有办法绕过这个限制,但您看到了问题:)那么跨域策略也是如此。有人可以关闭external.swf的服务器,用externalInterface支持替换它,并关闭所有Android手机。我认为应该有一种方法让外部swf到达容器应用程序。因为我听说一些Air开发者使用它来更新他们的产品模块。但是他们的方法在基于Android的应用程序上不起作用。嗯,如果你可以访问APK的内容,也许你可以在那里替换一个SWF并在本地加载?谢谢你的帮助。我试图在本地加载它并重新加载本地保存的文件。它仍然不允许我到达容器,但我是开发者。我的意思是应该有一种方法来指定两个文件(容器和swf)以相互访问。就像“allowDomain”如何允许从特定网站访问一样,应该有允许外部文件访问容器的方法。你可能是开发人员,但是如果你的Web服务器被破坏,你的external.swf被替换,你可能会让你所有的安卓应用程序用户都崩溃。我不知道,也许有办法绕过这个限制,但您看到了问题:)那么跨域策略也是如此。有人可以关闭external.swf的服务器,用externalInterface支持替换它,并关闭所有Android手机。我认为应该有一种方法让外部swf到达容器应用程序。因为我听说一些Air开发者使用它来更新他们的产品模块。但是他们的方法在基于Android的应用程序上不起作用。嗯,如果你可以访问APK的内容,也许你可以在那里替换一个SWF并在本地加载?谢谢你的帮助。我试图在本地加载它并重新加载本地保存的文件。而且它仍然不允许我到达容器。这可能不可能从一个移动应用程序。通常情况下,外部swf对AIR应用程序的访问是通过a进行的,但这需要使用html嵌入iframe。这可能是可以使用的,尽管我不确定具体实现。谢谢Ethan,就像你说的。沙盒桥和本地保存文件都不能在移动设备上工作。实际上,我改变了所有传递安全违规的架构。但不知何故,我应该使用StageWebView,它不允许我从external.swf使用它。有没有办法连接到容器以使用StageWebView?对不起,我花了这么长时间才回复。不幸的是,通过StageWebView来解决类似的问题,我发现也没有办法通过该方法连接内容,Adobe的文档反映了这一点。这在移动应用程序中可能是不可能的。通常情况下,外部swf对AIR应用程序的访问是通过a进行的,但这需要使用html嵌入iframe。这可能是可以使用的,尽管我不确定具体实现。谢谢Ethan,就像你说的。沙盒桥和本地保存文件都不能在移动设备上工作。实际上,我改变了所有传递安全违规的架构。但不知何故,我应该使用StageWebView,它不允许我从external.swf使用它。有没有办法连接到容器以使用StageWebView?对不起,我花了这么长时间才回复。不幸的是,在StageWebView中寻找解决问题的方法