FlashDevelop:推荐的加载/播放声音文件的方法

时间:2011-03-09 06:36:02

标签: actionscript-3 flashdevelop

我不确定这是FlashDevelop还是一般的ActionScript3问题,但是,我试图找出将声音文件添加到我的flashdevelop项目的最佳方法。

例如,我发现如果我将.mp3文件放在我项目的bin文件夹中,我可以使用以下代码行加载/播放它们

var sndreq:URLRequest = new URLRequest("foo.mp3");
var sound:Sound = new Sound();
sound.load(sndreq);
sound.play();

将我的所有声音文件移动到项目的bin目录似乎很痛苦(但如果这就是它需要的那样)。当我右键单击我的媒体文件时,我看到有一个“添加到库”选项,但我不确定它的效果是什么(我希望这意味着它会被自动复制到项目的bin目录中,但是没有这样的运气)。

所以,我的问题是:假设我只有flashdevelop而不是Flash CS3 / 4,这是加载本地声音文件的推荐方法吗?

2 个答案:

答案 0 :(得分:4)

如上文所述,问题的第一部分是一个简单的路径问题。我发现为所有动态加载的资源(xml,图像,声音)等构建文件结构很好。保持bin目录干净整洁。

更大的问题是在运行时嵌入vs加载资产。我不止一次完成了一个项目,发现我的单个swf(嵌入了所有资产)已经变得非常大,现在需要很长的前期负载。这可能会让你的生活变得更容易,但对最终用户来说并不是很好。

我最喜欢的做法是仅嵌入应用程序首次启动所需的内容,然后尽可能地隐藏其余资产的负载。不要让你的用户等着看你的惊人工作!

我实际上使用flash ide来打包我作为swfs发布的资产集(尽管你可以通过FD embeds完成同样的事情)。我在运行时定位这些swfs并从应用程序域中提取类。我主要构建微型网站,我倾向于将部分内容(“页面”)分解为可加载的swfs。加载目标swf后,页面即可进行导航。

另一种方法是使用BulkLoader之类的东西,或者更好的是,使用Greensock的LoaderMax(具有一些优秀的队列功能)来加载单个资产。

希望有所帮助。干杯!

答案 1 :(得分:2)

如果您只使用FlashDevelop,则有两种选择。您可以在编译时嵌入资源,因此使用[embed ...]语句打包它们。

http://www.bit-101.com/blog/?p=853

另请注意,在FlashDevelop中,您实际上可以右键单击资源,然后单击“插入文档”,这将自动为您编写嵌入行。

或者,您可以在运行时加载资源。所以现在使用像你一样的URLRequest方法。但您不仅限于bin目录。你可以:

new URLRequest("../../../../../foo.mp3");
// or
new URLRequest("www.stackoverflow.com/fakeresources/foo.mp3");

无论您是动态加载,都需要一条路径。

总体而言,如果您不需要动态,请嵌入资源。