cocos2d-js类和精灵触摸事件

类:精灵类的调用传参都是cotr构造函数接收的,层级的颜色在
this._super()中添加 生命周期函数开始也需要this._super()
层级类:
cc.Layer.extend({ })

cc.LayerColor.extend({
ctor:function()
{
this._super(cc.color(255,255,255,255))
}
});
精灵类:
cc.Sprite.extend({});

公共脚本的使用方法
var HelloWorldLayer = function(){}
this.a = HelloWorldLayer();

层(Layer)的生命周期函数有如下:
init()。初始化层调用。
onEnter()。进入层时候调用。
onEnterTransitionDidFinish()。 进入层而且过渡动画结束时候调用。
onExit()。退出层时候调用。
onExitTransitionDidStart()。 退出层而且开始过渡动画时候调用。
cleanup()。层对象被清除时候调用。

层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而

来。事实上所有Node对象(包括:场景、层、精灵等)都有这些函数,

只要是子类化这些类都可以重写这些函数,来处理这些对象的不同生命

周期阶段事件

精灵类的单次触摸

//精灵类
var sprCell = cc.Sprite.extend({
type:null,
bool:false,
ctor:function (url,type) {
this._super(url);
this.type = type;
console.log(this);
},
//onEnter() 进入层时候调用。
onEnter:function()
{
this._super();
//将this赋值给that是因为在listener函数中this代表的就不是这个节点的this
var that = this;
//create创造
var listener = cc.EventListener.create({
//单次触摸 EventListener 事件监听器
event:cc.EventListener.TOUCH_ONE_BY_ONE,
// 设置是否吞没事件,在 onTouchBegan方法返回 true 时吞掉事件,不再向下传递。
swallowTouches:true,
//onTouchBegan 在接触开始 实现 onTouchBegan 事件处理回调函数
onTouchBegan:function(touch,event)
{
//visible 选择器选取每个当前是可见的元素
if(!that.visible) return;
//获取 CurrentTarget:当前目标
var target = event.getCurrentTarget();
//获取触点的坐标 touch 触摸 getLocation 获取当前触点位置。
var locationInNode = target.convertToNodeSpace(touch.getLocation());
//获取当前对象的尺寸 getContentSize 获取节点自身大小,不受该节点是否被缩放或者旋转的影响
var s = target.getContentSize();
//rect 矩阵
var rect = cc.rect(0,0, s.width, s.height);
//rectContainsPoint:检查一个矩形是否包含某个坐标点。
if(cc.rectContainsPoint(rect,locationInNode))
{//这一段判断是配合game2.js脚本中的杯子 bool类型返回值判断,返回true的时候就可以点击杯子
//精灵类中的点击可以根据自己的需求来控制点击的条件
console.log(“1”);
if(that.bool)
{//函数的特性,即使这return出去了后面的函数也会执行
return true
}else{
return false;
}
}
return false;
},
//触摸移动时触发 实现onTouchMoved事件处理回调函数
onTouchMove:function(touch,event){},
//触摸结束时触发 实现onTouchEnded事件处理回调函数
onTouchEnded:function(touch,event)
{
console.log(“2”);
//触发自定义事件的方式 eventManager事件管理器
cc.eventManager.dispatchCustomEvent(USER_CLICK_EVENT,that);
}
});
console.log(“3”);
//addListener 将事件监听器添加到 eventManager事件管理器中 clone:克隆一个listener对象
cc.eventManager.addListener(listener.clone(), this);
},

//类中函数的调用也是new个对象然后就可以调用它的成员
//设置显示状态
//_setType:function(_type){
//    this.type = _type;
//    if(this.type == 0){
//        //visible   true 可见的  false 不可见
//        this.visible = false;
//        return;
//    }
//    this.visible=true;
//    //刷新
//    this.initWithFile(this.spriteArr[type]);
//},
//
//
//_setOpacity:function(bValue){
//    this.opacity = 255;
//    this._setType(0);
//}

});`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值