如果用Cocostudio提供的UIImageView来播放帧序列,如:
UIImageView imageView = UIImageView::create();
…//初始化等
CCAnimation animation = CCAnimation::createWithSpriteFrames(animFrames,0.1f);
animation->setLoops(-1);
action=CCAnimate::create(animation);
imageView->runAction(action);
这样就会导致类型转换错误,原因是UIImageView的基类使用CCNode作为Render,而播放帧序列是对Render进行SetDisplaySprite
详细信息:
以下代码来自“CCActionInterval.cpp”
for( unsigned int i=m_nNextFrame; i < numberOfFrames; i++ ) {
float splitTime = m_pSplitTimes->at(i);
if( splitTime <= t ) {
CCAnimationFrame* frame = (CCAnimationFrame*)frames->objectAtIndex(i);
frameToDisplay = frame->getSpriteFrame();
((CCSprite*)m_pTarget)->setDisplayFrame(frameToDisplay); //此处的m_pTarget是CCNode即UIImageView里的Render,转型到CCSprite后setDisplayFrame会引起崩溃
看来此路不通,请问有办法对Cocostudio的某一个UI控件播放CCAnimation的帧序列动画么
