1. cc.Node.EventType.MOUSE_MOVE
移动鼠标事件实现,返回鼠标坐标值相对前一个位置的偏移量:delta.x,delta.y。将节点的位置坐标x、y等于鼠标事件返回的坐标值delta.x,delta.y即可实现物体的拖动。
*
cc.Class({
*
extends: cc.Component,
*
*
properties: {
*
*
},
*
*
onLoad: function() {
*
*
this.node.on(cc.Node.EventType.TOUCH_MOVE,function(event){
*
this.opacity = 100;
*
var delta = event.touch.getDelta(); //getDelta: 获取当前光标与上一光标的偏移量
*
this.x += delta.x; //因为是偏移量,所以这里用的是+
*
this.y += delta.y;
*
},this.node);
*
*
this.node.on(cc.Node.EventType.TOUCH_END, function(){
*
this.opacity = 255; //松开鼠标的时候,恢复到透明度255
*
}, this.node);
*
},
*
*
update: function(dt){
*
*
},
*
*
});
<>2. 对cc.Class的浅薄认识
cc.Class就像Java中的类,但是看JavaScript的书中说,没有类这个概念。不过这里理解为一个常用的类就可以了。
*
1. var Sprite = cc.Class({
*
name: "sprite"
*
});
*
//调用CCClass类,传入原型对象
*
*
2. var obj = new Sprite(); //new 一个对象-实例化
*
*
3. //ctor声明构造函数的时候 联想到Java中的constructor
*
*
var Sprite = cc.Class({
*
ctor : function (){
*
cc.log(this instanceof Sprite); //true
*
}
*
});
*
*
4. //实例方法
*
var Sprite = cc.Class({
*
print: function (){
*
});
*
*
5. //继承的方法和Java相似,Java是在类的声明上直接使用extends,而这里是在cc.Class内部继承父类的名称变量即可。
*
//father
*
var Shape = cc.Class();
*
//son
*
var Rect = cc.Class({
*
extends: Shape
*
});
*
*
6. 继承之后会自动调用父类的构造函数_暂时还没有遇到Java中的静态_非静态是否调用父类的方法。
*
var Shape = cc.Class({
*
ctor: function () {
*
cc.log("Shape"); // 实例化时,父构造函数会自动调用,
*
}
*
});
*
*
var Rect = cc.Class({
*
extends: Shape
*
});
*
*
var Square = cc.Class({
*
extends: Rect,
*
ctor: function () {
*
cc.log("Square"); // 再调用子构造函数
*
}
*
});
*
*
var square = new Square();
*
*
以上代码将依次输出 "Shape" 和 "Square"。
*
声明属性的方法直接在cc.Class中的properties字段中即可,包括简单声明,完整声明。
简单声明就是键值对的描述
*
properties:{
*
height: 20,
*
type: "actor",
*
loaded: false,
*
target: null,
*
}
热门工具 换一换