【问题标题】:How to let embeeded SWF have access to read files in applicationStorageDirectory in AIR for Android如何让嵌入的 SWF 有权读取 AIR for Android 中 applicationStorageDirectory 中的文件
【发布时间】:2014-06-12 06:10:47
【问题描述】:

我正在开发一款适用于 Android 的 AIR 应用程序,它是一种用于企业电视的视频播放器

该应用会下载图像、视频和 SWF,并将它们存储起来,以便在播放列表要求时播放。

SWF 通常是模板,用户可以在其中动态放置图像和文本; 所有这些信息都存储在 applicationStorageDirectory 上的 XML 文件中;

问题是当它们被调用时,我无法从下载的 SWF 中打开这些额外的文件(XML、图像等);它显示了沙盒安全错误;

我尝试将 nativePath 作为 flashVAs 传递给嵌入的 SWF。在 FLash (Testing on windows) 中它可以工作,但在 android 中它没有;

有没有人知道我怎样才能让它发挥作用?

【问题讨论】:

标签: android actionscript-3 air


【解决方案1】:

您需要在加载 swf 时提供上下文。

var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;

var rslLoader:Loader = new Loader();
rslLoader.contentLoaderInfo.addEventListener(Event.INIT, rslLoadedHandler);
rslLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, rslIOErrorHandler, false, 0, true);
rslLoader.load(new URLRequest("myurl"), context);

在此处了解有关 LoaderContext 类的更多信息:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/LoaderContext.html

由于文档中的这一行,我担心这可能对您不起作用:

AIR 应用程序安全沙箱中的内容无法加载内容 从其他沙箱到其 SecurityDomain。

尽管尝试一下,并确保让这里的每个人都知道结果,以供未来的访问者使用。

【讨论】:

    【解决方案2】:

    我找到了做 IT 的方法;

    我把文件放在 desktopDirectory 而不是 applicationStorageDirectory;

    这样,我的 SWF 就有权访问它们。

    【讨论】:

    • 您希望它适用于 Android,然后将它们放入 desktopDirectory,结果成功了吗?!你确定?!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2011-05-13
    • 1970-01-01
    • 2012-08-15
    • 2011-02-24
    相关资源
    最近更新 更多