引自免费微信小程序:皆我百晓生
在Cocos Creator中,动态加载服务器端的图集(plist文件)以及动画Clip(cc.Animation),你需要使用cc.assetManager来进行异步加载。首先确保你的服务器端plist文件与png图片是配套的,并且plist文件指向了正确的png图片路径。
下面是一个示例,演示如何加载并应用图集及动画:
// 定义服务器上图集plist文件和对应的png图片地址
const plistUrl = 'http://47.96.2.87:8080/yourAtlas.plist';
const pngUrl = 'http://47.96.2.87:8080/yourAtlas.png';
// 使用cc.assetManager加载图集
cc.assetManager.load(plistUrl, 'cc.SpriteAtlas', (err, atlas) => {
if (err) {
console.error('Failed to load SpriteAtlas:', err);
return;
}
// 加载成功后,获取动画Clip
const clipName = 'yourAnimationClip'; // 替换为实际的动画剪辑名称
let animationClip = atlas.getClip(clipName);
if (!animationClip) {
console.error('Failed to find the animation clip in SpriteAtlas:', clipName);
return;
}
// 获取或创建一个精灵节点
let spriteNode = ent1; // 假设ent1是你已经获取到的带有cc.Sprite组件的游戏对象
if (!spriteNode.getComponent(cc.Sprite)) {
spriteNode.addComponent(cc.Sprite);
}
// 将加载好的图集设置给精灵
let sprite = spriteNode.getComponent(cc.Sprite);
sprite.spriteFrame = atlas.getSpriteFrame('yourSpriteFrameName'); // 替换为实际的精灵帧名称
// 设置动画剪辑给精灵
let animComponent = spriteNode.getComponent(cc.Animation);
if (!animComponent) {
animComponent = spriteNode.addComponent(cc.Animation);
}
animComponent.addClip(animationClip);
// 播放动画
animComponent.play(clipName);
});
请注意替换上述代码中的'yourAtlas.plist'、'yourAtlas.png'、'yourAnimationClip'和'yourseSpriteFrameName'为实际的资源路径和名称。同时,在实际项目中,可能还需要处理加载完成后的逻辑,例如资源预加载、按需加载等。