我说说我的做法,但是不敢保证是最好的做法
1.专门用一个prefab来做转场特效,需要转场的时候实例化这个prefab,同时预加载下一个运行的场景,在预加载完成后加载下一个场景,也可以不做成prefab,而是设置为常驻节点
2.不知道,没做过
3.弹出框我是用一个节点b做背景,这个b节点是个空节点,大小和场景一样大,然后把弹出框内容作为这个节点的子节点c,然后在子节点c上挂载一个自定义组件(JS文件),然后c节点有标题啊,背景啊,其他什么部件啊,还有一个content子节点放内容,这个自定义组件里给父节点b添加触摸监听,然后吞噬,这样这弹出框出现的时候弹出框以为的内容不能被点击,然后自定义组件里我写了几个方法,大体如下
1).设置弹出框标题
2).添加按钮(自己找个地方放个layout,resizeMode为container,按钮添加到container里实现对齐)
3).添加文本
4).添加图片
5).添加自定义节点(自定义节点可以是任意node)
6). 关闭方法(用来关闭弹出框)
这个弹出框我又分为了两种,一种是固定大小,content节点是scrollView,内容太多可以滑动查看,我的目的是用来做公告啊,说明什么的,因为不知道有多少内容
第二种是可以动态更改大小的(动态更改高度,宽度固定),content节点是layout,resizeMode是container(但是要保证添加的内容的宽度不能大于content节点的宽度),这种就适合大概知道内容有多少的
然后内容我分为几种,比如文本,图片,其他自定义的样式(你不可能每个弹出框的内容完全不一样没有共同点吧?),大概分几类,然后不同的内容节点做成不同prefab,再写不同的脚本来初始化和设置不同的内容
内容和弹出框全部做成prefab,要用的时候实例化,然后调用相应的方法初始化,并且用cc.director.getScene().addChild()来添加,这样 应该 能保证弹出框在最上面
当然这是模态对话框,弹出后只要关闭对话框才能操作对话框后面的内容,如果你想在弹出对话框的时候也能操作对话框后面的内容,就不需要背景节点b,也不需要添加触摸监听并吞噬
4 http://forum.cocos.com/t/cocos-creator-loading/39135/8
当然这些东西大家都能做出来,我水平也不是很高,我只是来发表一下我的看法,希望对楼主有帮助,如果有更好的想法,可以分享出来让我借鉴