这里要求.this._sgNode 不为空
setSkeletonData: function (skeletonData, ownsSkeletonData) {
if (this._sgNode) {
this._sgNode.setSkeletonData(skeletonData, ownsSkeletonData);
}
},
_createSgNode: function () {
var skeletonData = this.skeletonData;
// this.skeletonData.notify
if (skeletonData/* && self.atlasFile*/) {
if (CC_JSB) {
var uuid = skeletonData._uuid;
if ( !uuid ) {
cc.errorID(7504);
return null;
}
var jsonFile = cc.loader.md5Pipe ? cc.loader.md5Pipe.transformURL(skeletonData.nativeUrl, true) : skeletonData.nativeUrl;
var atlasText = skeletonData.atlasText;
if (!atlasText) {
cc.errorID(7508, skeletonData.name);
return null;
}
var texValues = skeletonData.textures;
var texKeys = skeletonData.textureNames;
if ( !(texValues && texValues.length > 0 && texKeys && texKeys.length > 0) ) {
cc.errorID(7507, skeletonData.name);
return null;
}
var textures = {};
for (var i = 0; i < texValues.length; ++i) {
textures[texKeys[i]] = texValues[i];
}
var sgNode = new sp._SGSkeletonAnimation();
try {
sp._initSkeletonRenderer(sgNode, jsonFile, atlasText, textures, skeletonData.scale);
}
catch (e) {
cc._throw(e);
return null;
}
return sgNode;
}
else {
var data = skeletonData.getRuntimeData();
if (data) {
try {
return new sp._SGSkeletonAnimation(data, null, skeletonData.scale);
}
catch (e) {
cc._throw(e);
}
}
}
}
return null;
},
而_createSgNode 则要求 skeletonDatas不为空, 所以现在骨骼动画不支持动态加载了?