有没有办法实现一个对话框的效果?

想实现弹出模态对话框的效果,找了半天文档和示例代码也没有发现…求代码…或实现方法

模态对话框要自己实现,如果实在需要,我可以把我做的发个demo给你

garlans@163.com 十分感谢!

等等我整理一下发到本帖

今天太忙了,明天发吧

提供一个拦截全局事件的思路
在 UI 根节点(Canvas)上监听 capture 事件,并进行处理和拦截

cc.find('Canvas').on('touchstart', function (event) {
  // 这里可以判断 event 是否在对话框上,如果不是的话调用 event.stopPropagation();
}, true)
2赞

以前的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,个人水平很差(不是有限哦),只是能用,只是能用,只是能用,不能要求太高,所以仅供参考吧,如果朋友们有更好的想法可以提出来让我参考一下哦:grin:

moduleDialog.zip (561.8 KB)

2赞

厉害!这么多种形式的模态对话框都齐了。稍有不完美的就是弹出对话框,下层的画布没有颜色的改变或能够通知用户不可用的改变。
+++++++++++++++++++
要实现下层画布变色,只需把resizeDialog和moduleDialog的background加点颜色就好

可以自己设置spriteFrame,也可以直接设置颜色的,可以去看看moduleDialog.js的源码,水平比较差,请勿见笑:joy:

不不不,感觉你的这个源码可以收录了,对像我这样的新手来讲太牛了。

可能对新手来说比较实用,但是对大神来说简直就是渣渣:joy:,还有里面的所有cc.log是我调试的时候用的,你可以全部删除了

:5::5::5:任性,这样动不动就删除api又会流失一大票开发者

其实 cc.eventManager 从来都不在 Creator 的 API 集中,只是大家保持了旧习惯还在用