2013-02-18 52 views
0

我可以访问和播放名为“Song.mp3”的文件,该文件位于我的项目的根目录中,但当我将其放入“assets”目录时,出现错误。如何播放位于flex中不同文件夹的声音?

这里是我的项目目录:

- Test 
-- src 
--- Homeview.mxml 
-- assets 
--- Song.mp3 
-- Song.mp3 

我可以访问和播放Song.mp3的位于根文件夹,但我得到的错误,当我想玩资产/ Song.mp3的。

这工作:

var req:URLRequest = new URLRequest('../Song.mp3'); 

这并不:

var req:URLRequest = new URLRequest('../assets/Song.mp3'); 

我获得以下运行时错误:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/assets/Song.mp3 

我认为Song.mp3的根目录中获取出口在最终的SWF文件中,但资产/ Song.mp3没有。如果是这种情况,是否有强制Flex导出资产/ Song.mp3的方法?

+0

由于它不是嵌入式资产,它根本不会被导出。 IT部门可以将mp3文件放在生产服务器的适当位置。不过,我认为Flash Builder中的设置可能会移动非嵌入式资源或类似的内容。 – JeffryHouser 2013-02-18 23:50:12

+0

我的项目是“Flex移动项目”。 Flex将所有内容编译成针对目标平台的本地应用程序所以没有网络服务器。是否有可能强制Flex导出“资产”目录的所有文件?我不想嵌入所有文件,因为主要的swf文件会变得非常大。 – bman 2013-02-19 01:40:20

+0

是的,通过移动项目,您可以选择要包含在最终IPA或APK文件中的资产。执行导出时,Flash Builder中有一个选项。 – JeffryHouser 2013-02-19 02:25:11

回答

1

您可以使用文件类,即File.applicationStorageDirectory.resolvepath(“网址”) 或File.applicationDirectory.resolvepath(“你的网址”)的文件类型变量保存它;使用file.url或文件。 nativePath来访问文件。 这将能够检索您在应用程序文件夹中的外部文件。

+0

我主要做的错误是将“资产”文件夹放在src文件夹之外。我发现我必须将我的资产目录放入src文件夹才能导出到最终项目中。 – bman 2013-02-26 07:31:16

+1

这是100%真实.. :)希望这可以帮助别人! – 2013-02-26 08:38:35