预制资源是存放在资源中,并不是节点中。所以在我们使用时,不能通过cc.find()查找。而是通过loadres
下面是代码部分
//加载预制资源
cc.loader.loadRes(PrefabUrl, function(errorMessage,loadedResource){
//检查资源加载
if( errorMessage ) { cc.log( '载入预制资源失败, 原因:' + errorMessage ); return; }
if( !( loadedResource instanceof cc.Prefab ) ) { cc.log( '你载入的不是预制资源!' ); return; }
//开始实例化预制资源
var TipBoxPrefab = cc.instantiate(loadedResource);
//将预制资源添加到父节点
CanvasNode.addChild(TipBoxPrefab);
//获取预制资源中的js组件,并作出相应操作
var TipBoxScript = TipBoxPrefab.getComponent('tipbox');
//开始操作JS组件脚本
TipBoxScript.action(ButtonNumber,callbackObj); //开始为JS组件进行初始化操作,action 为自定义初始化方法
TipBoxScript.setTipContent(content); //设置提示框的内容
SelfCallBack(TipBoxPrefab,TipBoxScript);
});
主要代码:
//加载预制资源 PrefabUrl为 预制资源在 资源中的路径
cc.loader.loadRes(PrefabUrl, function(errorMessage,loadedResource){});
//开始实例化预制资源(这是个实例化是我自己理解的,可能说的不正确)
var TipBoxPrefab = cc.instantiate(loadedResource);
//将预制资源添加到父节点CanvasNode为画布canvas节点 是用cc.find()获得的对象
CanvasNode.addChild(TipBoxPrefab);