我们项目中打算嵌入cocos2dx,用来做动画处理,现在功能比较较简单,就是获得一个plist动画,然后让cocos播放,我现在是这样处理的,
1.activity启动时就
auto scene = HelloWorld::createScene();
// run
director->runWithScene(scene);
2.activity接收事件。调用jni,
jni里
const char *url = env->GetStringUTFChars(url_, 0);
HelloWorld::play(director->getRunningScene(), url );
3.HelloWorld::play中
播放这个url的动画,( 现在是anim.plist)
auto cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile(“anim.plist”);
Vector<SpriteFrame*> vec;
char name[15];
memset(name, 0, 15);
for (int i = 0; i < 20; i++) {
sprintf(name, "anim%04d", i);
vec.pushBack(cache->getSpriteFrameByName(name));
}
Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f);
Animate *animate = Animate::create(animation);
auto sprite = Sprite::create();
scene->addChild(sprite);
sprite->setPosition(200, 200);
auto action = Animate::create(animation);
sprite->runAction(animate);
结果很悲剧,这个动画是一个黑块。
这时我back退出app,再次进入动画又有了。
请问这时何解,苦恼