| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Learn cc.Class:
- // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/class.html
- // - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/class.html
- // Learn Attribute:
- // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
- // - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/reference/attributes.html
- // Learn life-cycle callbacks:
- // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
- // - [English] http://www.cocos2d-x.org/docs/creator/en/scripting/life-cycle-callbacks.html
- cc.Class({
- extends: cc.Component,
- properties: {
- button: {
- default: [],
- type: [cc.Node],
- serializable: true,
- },
- stencil: cc.Node,
- stencil_tip: cc.Node,
- targetButton: {
- default: null,
- type: cc.Node,
- visible:false,
- serializable: false,
- },
- },
- random(max, min) {
- return Math.floor(Math.random() * (max - min + 1) + min);
- },
- onLoad() {
- // this.node.on(cc.Node.EventType.TOUCH_START, this.TouchStartFunction, this);
- this.node.on(cc.Node.EventType.TOUCH_END, this.TouchEndFunction, this);
- // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.TouchCancelFunction, this);
- },
- start() {
- this.stencil_tip.opacity = 255;
- this.stencil_tip.stopAllActions();
- var s = cc.sequence(cc.scaleTo(0.5, 1.5), cc.scaleTo(0.5, 1.0));
- var repeat = cc.repeatForever(s);
- this.stencil_tip.runAction(repeat);
- },
- TouchEndFunction(event) {
- let pt = this.stencil.convertToNodeSpace(event.getLocation());
- let rect = cc.rect(0, 0, this.stencil.width, this.stencil.height);
- //点中空洞,返回false,触摸事件继续派发
- if (rect.contains(pt)) {
- console.log('点击区域');
- if (this.targetButton)
- cc.Component.EventHandler.emitEvents(this.targetButton.clickEvents,event);
- let i = this.random(1, 0);
- console.log(i);
- let button = this.button[i];
- this.targetButton = button.getComponent(cc.Button);
- let pt = this.stencil.parent.convertToNodeSpaceAR(button.parent.convertToWorldSpaceAR(button.position));
- this.stencil.position = pt;
- this.stencil_tip.position = pt;
- return false;
- }
- console.log('点击区域无效');
- },
- // update (dt) {},
- onButtonEvent(target,event) {
- console.log(target,event);
- }
- });
|