想实现弹出模态对话框的效果,找了半天文档和示例代码也没有发现…求代码…或实现方法
模态对话框要自己实现,如果实在需要,我可以把我做的发个demo给你
等等我整理一下发到本帖
今天太忙了,明天发吧
提供一个拦截全局事件的思路
在 UI 根节点(Canvas)上监听 capture 事件,并进行处理和拦截
cc.find('Canvas').on('touchstart', function (event) {
// 这里可以判断 event 是否在对话框上,如果不是的话调用 event.stopPropagation();
}, true)
以前的js的TOUCH_ONE_BY_ONE的方法也能用
start: function () {
var that = this;
//全部事件都捕获//不让你点到下面的层
cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
var target = event.getCurrentTarget();
var touchPoint = target.convertTouchToNodeSpace(touch);
if (!cc.rectContainsPoint(that._thisRect, touchPoint)) {
that._isclosdMenu = true;
}
return true;
},
onTouchEnded: function (touch, event) {
if (that._isclosdMenu) {
that.closdThisMenu();
}
}
}, this.node);
},
不建议使用任何 cc.eventManager 的 API,它也不在 Creator 的事件处理 API 集中,具体可以参考我们关于事件处理的文档,在未来 cc.eventManager 可能会被删除。
模态对话框demo,个人水平很差(不是有限哦),只是能用,只是能用,只是能用,不能要求太高,所以仅供参考吧,如果朋友们有更好的想法可以提出来让我参考一下哦
moduleDialog.zip (561.8 KB)
厉害!这么多种形式的模态对话框都齐了。稍有不完美的就是弹出对话框,下层的画布没有颜色的改变或能够通知用户不可用的改变。
+++++++++++++++++++
要实现下层画布变色,只需把resizeDialog和moduleDialog的background加点颜色就好
不不不,感觉你的这个源码可以收录了,对像我这样的新手来讲太牛了。
可能对新手来说比较实用,但是对大神来说简直就是渣渣,还有里面的所有cc.log是我调试的时候用的,你可以全部删除了
任性,这样动不动就删除api又会流失一大票开发者
其实 cc.eventManager 从来都不在 Creator 的 API 集中,只是大家保持了旧习惯还在用