当前的一个项目需要加载很多spine动画,如果打包会使得包体很大。有没有远程加载spine动画的方案?
不知道是不是版本原因,我的skeletonData并没有.textureNames属性,我的skeleton也没有_updateSkeletonData方法,而且我的代码会在给Skeleton赋值的时候报错:
self.m_mainSkeleton.skeletonData = asset;
已解决,强行修改之后成功
这个是怎么解决的啊,我从服务器拉过来之后,一直提示纹理未初始化,初始化的函数也用不了啊
static loadElfSpineByName(spineName: string, skinName: string, actionName: string, spineNode: sp.Skeleton) {
let httpCom = "https://buckettest-filestore123.oss-cn-beijing.aliyuncs.com"
let spineroot = "/aaa-bbb/";
let str = ["10", "100", "1000", "spineboy"];
let imageUrl = httpCom + spineroot + spineName + "/" + spineName + ".png";
let atlasUrl = httpCom + spineroot + spineName + "/" + spineName + ".atlas";
let skeletonUrl = httpCom + spineroot + spineName + "/" + spineName + ".json";
cc.assetManager.loadRemote(imageUrl, (err: Error, texture: cc.Texture2D) => {
if (err)
return;
cc.assetManager.loadRemote(atlasUrl, (error: Error, atlasText: cc.TextAsset) => {
if (error)
return;
cc.assetManager.loadRemote(skeletonUrl, (error: Error, skeletonJson: cc.JsonAsset) => {
if (error)
return;
let asset = new sp.SkeletonData();
asset.skeletonJson = skeletonJson.json;
asset.atlasText = atlasText.text;
asset.textures = [texture];
asset.textureNames = [spineName + ".png"];
spineNode.skeletonData = asset;
spineNode.setSkin(skinName);
spineNode.setAnimation(0, actionName, true);
});
});
});
}
!!!!!!!!!!!!!!!!!!!!!!!!必须给图集命名才管用