開発メモ。
CocosBuilderで開発することは良くありますが、
iOSとAndroidは動いても、HTML5で以下のエラーが出てしまうことがありました。
Uncaught TypeError: Cannot call method 'addEventListener' of null
Uncaught TypeError: undefined is not a function
まぁ別にHTMLで動かなくても問題ないのですが、
一応原因を。
CocosBuilderはその仕様上、jsファイルの読み込み順がファイル名順です。その為、「_global.js」みたいなファイルを作って、そこでグローバルな変数を定義したりします。ちょっとしたラップとして、以下のような記述をしていました。
var _global = this;
var _audioEngine = cc.AudioEngine.getInstance();
var _director = cc.Director.getInstance();
しかし、最後のcc.Director.getInstance();は、HTML5だと上記エラーになります。
解決方法は単純に、この時点で作られてないってだけなので、
var _director;
var TitleScene = function(){
_director = cc.Director.getInstance();
};
のように、ちょっとタイミングをずらせばOKです。見た目汚いですが。
- 関連記事
-