关于同场景下多个面板的制作问题!新手求助!

对于同一个场景中的多个UI界面,目前我使用active属性来控制显示与否,但是这样在进入该场景时,每个界面不管显示与否都会调用onLoad加载一遍。求教有没有更合适的方式,来控制界面的打开和关闭。

onLoad并不受active影响
和active 有关的回调是onEnable 和 onDisable
如active来回设置true false会来回调用onEnable和onDisable

我没听懂你是要加载还是不加载。。
如果仅仅让本节点不显示 但是节点仍旧活动
可以让这个节点的渲染组件enabled属性设置为false
比如精灵组件
this.node.getComponent(cc.Sprite).enabled=false

如果让这个节点的节点树不显示 但是节点仍旧活动
可以设置这个节点的scale 注意这会修改节点的尺寸
this.node.scaleX=0

我是希望在打开该界面的时候,再去加载它。不打开时,不显示,也不活动,也不要加载。进入场景时,只加载当前需要打开的界面;暂时不需要打开的界面,也不需要活动,等到需要打开时再加载它。这应该用什么来控制

http://www.cocos.com/docs/creator/scripting/life-cycle-callbacks.html
看下这个 用onEnable 或者在onLoad判断节点的active属性也行

非常感谢!
再请教一个问题,还是多UI问题:在主场景中有角色、装备、社交等等多个模块的按钮,来呼出该模块的界面。我是这样来制作的:在该scene的canvas下分别为每一个模块做一个node根节点,在该node下添加该模块的UI内容;默认它们都是不显示的,所以除了主界面,其它各模块的根节点node都在编辑器中设置了不显示。问题是,进入场景时,canvas下的所有节点都会加载一遍,如果这样的模块比较多,或者某些模块UI比较复杂,这对加载效率是否有影响呢

你所说的加载,如果不显示, 那也就只有脚本的onLoad被加载。
如果真的想运行时加载,可以用prefab运行时挂到场景中。
不过这样做,你将失去可视化编辑UI的优势。
效率上不妨从图片的分辨率,图集,字体,UI的复用上下手。

明白了,非常感谢!