官方文档中 通过缓存创建帧动画 疑问。

[list=1][li] auto cache = AnimationCache::getInstance(); [/li][li] cache->addAnimationsWithFile(  "animations/animations-2.plist"  ); [/li][li] auto animation2 = cache->getAnimation(  "dance_1"  ); [/li][li] [/li][li] auto action2 = Animate::create(animation2); [/li][li] _tamara->runAction(Sequence::create(action2, action2->reverse(), NULL)); [/li][/list]

其中,请问“dance_1”是哪里来的?

animations-2.plist 里面,你可以用文本编辑器之类的打开.plist看看

你好,感谢你的回复,麻烦说具体一点。

是不是在texturePakcer中有地方设置?

你用编辑器打开.plist就知道了,这东西就是存储一些信息,类似于XML的存在吧。texturePakcer这东西会帮你把导进去的图片什么的自动生成.plist文件

这个是我自己用texturePacker导出的plist文件信息。
plist文件叫pic.plist
对应的图片文件叫pic.png
里面一共包含了五张图片a01 – a05

<?xml version="1.0" encoding="UTF-8"?> frames a01.jpg frame {{2,2},{50,50}} offset {0,0} rotated sourceColorRect {{0,0},{50,50}} sourceSize {50,50} a02.jpg frame {{54,2},{50,50}} offset {0,0} rotated sourceColorRect {{0,0},{50,50}} sourceSize {50,50} a03.jpg frame {{106,2},{50,50}} offset {0,0} rotated sourceColorRect {{0,0},{50,50}} sourceSize {50,50} a04.jpg frame {{158,2},{50,50}} offset {0,0} rotated sourceColorRect {{0,0},{50,50}} sourceSize {50,50} a05.jpg frame {{210,2},{50,50}} offset {0,0} rotated sourceColorRect {{0,0},{50,50}} sourceSize {50,50} metadata format 2 realTextureFileName picz.png size {262,54} smartupdate $TexturePacker:SmartUpdate:bc380c16a5736be4ba531d49713b15ee:6937a191744459f1203c38b45cef3933:fcbce067e1eab00fa203ba170c55354b$ textureFileName picz.png

请问我这个文件中的 cache->getAnimation(name); 这个name应该是从plist文件中的哪里找到呢?

a01.jpg

可是一共五张图片呢,是要添加五次吗?

这是我的代码

auto cache = AnimationCache::getInstance();
cache->addAnimationsWithFile(“pic.plist”);
auto animation = cache->getAnimation(“a01.jpg”);

需要哪张拿哪张。至少比你一张张加入缓存方便吧!

呃,这个不是加入缓存呃,加入缓存是前两句,我是要从缓存中读取刚才加载进去的动画。

auto cache = AnimationCache::getInstance();
cache->addAnimationsWithFile("pic.plist");
auto animation = cache->getAnimation("name");//从缓存中读取刚才通过pic.plist加入的动画,这个name是什么呢?

动画是用cocos studio的动画编辑器 生成的.plist文件,你用cocostudio生成一次,再调用一次就都清楚了:12::12:

Texture Packer 生成的是材质文件,不是动画文件

好吧,感谢!