cocos2d-js v3.0 を使用しており、EventListener で this.sprite オブジェクトを使用しようとしています。ただし、 this.sprite は未定義です。
init 関数で var スプライトを作成し、スプライトを渡すだけで問題なく動作します。しかし、init 関数の外で var スプライトを作成し、this.sprite を使用すると、未定義になります。
var roomMap = cc.Layer.extend({
sprite:null
ctor:function(){
this._super();
this.init();
},
init: function () {
this._super();
//create tile map
this.mainMap = cc.TMXTiledMap.create(res.Main_tmx);
var cache = cc.spriteFrameCache;
cache.addSpriteFrames(res.player_plist, res.player_png);
this.sprite = new cc.Sprite.create("#player-stand-f-0");
this.sprite.setPosition(new cc.Point(300,300));
this.addChild(this.sprite);
var listener = cc.EventListener.create({
event: cc.EventListener.MOUSE,
onMouseUp: function (event){
var sprite_action = cc.MoveTo(2,cc.p(event.getLocationX(),event.getLocationY()));
console.log(this.sprite);
//this.sprite.runAction(sprite_action);
//this.addChild(sprite_action);
}
});
cc.eventManager.addListener(listener, this.sprite);
これは、私が抱えているJavaScriptの問題です。