为什么在同一个域里面 不能用this访问

var MenuLayer = cc.Layer.extend({
move:null,
moveback:null, //这里定义了两个动作

    btn:null,//按钮
    ctor:function () {
             this.move = cc.moveBy(0.5, cc.p(0, 50)).easing(cc.easeBackOut());
    this.moveback = this.move.reverse();
            //按钮是一个菜单按钮 可以点 
            disAction();//运行这个方法没问题
            hidAction();//运行这里会报错    Invalid Native Object
    },
disAction:function(){
    btn.runAction(this.move);
},
hidAction:function(){
    btn.runAction(this.moveback); //为什么运行到这里的时候会报错 Invalid Native Object     感觉this.moveback有问题
}

})

两个动作是分开调用的 不是一起调用 这里写一下只是说明下 自己的调用方法

分开调用是在哪里调用的呢。这样放在一起写应该不会有问题。如果是在回调里面调用的,需要确定下this指针是不是正确

其实我在另外的地方 有两个按钮 分别调用这两个方法 但是第一个可以用完全没问题 第二个就不行了 感觉JS的作用域好混乱

建议可以断点调试一下,watch一下this对象是不是对的。

感觉这个返回动作有问题
hidAction:function(){
var AAAmove = cc.moveBy(0.5, cc.p(0, 50)).easing(cc.easeBackOut());
var AAAmoveback = this.move.reverse();
btn.runAction(AAAmoveback );
}
这样就可以了 难道返回动作不能先记录下 之后再另外使用的?

这是js的作用域问题。

    this.disAction();
    this.hidAction.call(self);

而且你下面两个方法里,,,有的对象有this.有的没有。。。。会找不到对象的啊。
:12::12::12: