Actionscript 3 AIR:URLStream()的OSX(但不是Windows)上的securityError

Actionscript 3 AIR:URLStream()的OSX(但不是Windows)上的securityError,actionscript-3,flash,apache-flex,air,sandbox,Actionscript 3,Flash,Apache Flex,Air,Sandbox,我正在使用URLStream从硬盘加载一个文件(我想继续使用URLStream来加载)。该文件位于“应用程序存储:/myfolder/myFile.zip”中 所以我用 var f:File = new File("app-storage:/myfolder/myFile.zip"); myStream.load(new URLRequest(f.nativePath)); 在Windows上,这似乎可以正常工作-但在OS X上,URLStream会发送一个SecurityErrorEvent

我正在使用URLStream从硬盘加载一个文件(我想继续使用URLStream来加载)。该文件位于“应用程序存储:/myfolder/myFile.zip”中

所以我用

var f:File = new File("app-storage:/myfolder/myFile.zip");
myStream.load(new URLRequest(f.nativePath));
在Windows上,这似乎可以正常工作-但在OS X上,URLStream会发送一个SecurityErrorEvent.SECURITY\u错误,并显示以下消息:

Error #2032: Stream Error. URL: app:/Users/myUserName/Library/Preferences/MyAppName/Local%20Store/myfolder/myFile.zip

有人能给我解释一下为什么这在windows上有效而在OS X上无效,以及如何解决这个问题吗?

好的,古老的,含糊不清的错误2032

您可能要尝试:

var f:File = new File(File.applicationStorageDirectory + "/myFolder/myFile.zip");
编辑

我最初的评论是使用
File.applicationStorageDirectory
属性,我仍然认为这是个好主意。但是看起来这个属性可以归结为您正在使用的同一个字符串。。。所以,问题可能是存储目录的位置已更改,而您要查找的文件仍在原始位置?请参阅下面的链接

结束编辑


请注意仅适用于Mac OSX的Air 3.3中对该路径所做的更改。即使这不能解决您的问题,如果路径发生更改或使用不同的“模式”,使用此属性也会使您的代码避免将来出现问题其他设备/OS需要。否-路径正确-如果使用绝对路径,我认为OS X上的AIR不会使用应用程序安全沙箱,即使该绝对路径指向应用程序存储目录。我现在把f.nativePath改为f.url,它现在可以在Windows和OSX上运行。不过,如果有人对此有正确的解释,我将不胜感激。