【发布时间】:2015-12-11 07:39:06
【问题描述】:
我想知道是否可以在 Phaser 中在给定时间动态加载资产,而不是在预加载函数中加载所有内容。原因很简单:我有一个游戏,三个不同的关卡,都有不同的背景歌曲;所以我宁愿在启动时只加载一首歌曲以减少加载时间。
现在,我的预加载函数如下所示:
preload: function()
{
game.load.audio('pixel_world',
['assets/music/pixel_world_lo.ogg', 'assets/music/pixel_world_lo.mp3']);
game.load.audio('second_source',
['assets/music/second_source_lo.ogg', 'assets/music/second_source_lo.mp3']);
game.load.audio('reboot_complete',
['assets/music/reboot_complete_lo.ogg', 'assets/music/reboot_complete_lo.mp3']);
game.load.image('pickup', 'assets/img/pickup.png');
}
我尝试将其中一个 game.load.audio() 调用移至 create 函数:
create: function()
{
game.load.audio('pixel_world',
['assets/music/pixel_world_lo.ogg', 'assets/music/pixel_world_lo.mp3']);
// good things follow...
}
但是,以下调用失败:
this.cache.isSoundDecoded(level.song)
// Phaser.Cache.isSoundDecoded: Key "pixel_world" not found in Cache.
song = game.add.audio(level.song);
// Phaser.Cache.getSound: Key "pixel_world" not found in Cache.
你知道我怎样才能让它工作,或任何其他方法来确保在游戏启动时不会加载这三首歌曲吗?谢谢!
【问题讨论】:
标签: javascript phaser-framework