我和朋友一起玩游戏,我们在AngularJS和Phaser上遇到了一些问题。
所以,我们有一个名为game的页面,它有一个模板,一个控制器和一个工厂。 有一个页面将我们“重定向”到游戏页面(只有一个链接)。
在模板中:
<div id="game"></div>
<a href="#/page">Back</a>
在工厂:
// function prealod and create ....
init: function(data) {
game = new Phaser.Game(width, height, Phaser.AUTO, 'game', { preload: preload, create: create });
},
destroy: function() {
game.destroy();
}
在控制器中:
gameFact.init();
$scope.$on('$destroy', function() {
gameFact.destroy();
});
当然,还有更多代码。
问题很简单:
如果我来到游戏页面,Phaser可以很好地加载游戏(我们只显示精灵地图)。 之后,我点击后退按钮并重新点击链接返回游戏页面。 如果我这样做7次,则控制台出错:
Uncaught SyntaxError: Failed to construct 'AudioContext': number of hardware contexts reached maximum (6).
几秒钟后,我有这个错误:
Uncaught TypeError: Cannot read property 'gain' of undefined
我已在网上搜索,解决方案是:
你知道如何解决这个问题吗?
如果您有任何想法,请不要犹豫。即使您使用其他游戏框架(也许它的工作方式相同)。
答案 0 :(得分:1)
我遇到了类似的问题,destroy()
似乎与当前版本(issue discussed here)无法正常工作:
Could you please test out the dev branch, which has lots of fixes for this in.
我使用dev分支(available here)
解决了这个问题答案 1 :(得分:0)
您需要使用Angular指令并使用导航事件来执行此操作,请查看我的示例:http://market.ionic.io/plugins/ionphaser
此致,Nicholls
答案 2 :(得分:0)
有一个新的WebComponent可以将Phaser与任何其他框架https://github.com/proyecto26/ion-phaser
集成