Cocos2d-x擴展類中UIImageView類的使用疑問

   這篇博文中,主要將自己今天在項目中使用UIImageView類時遇到的一些問題寫下來,其中涉及到一些不去嘗試可能就不會知道的東西。


   最近兩天剛接觸CocoStudio,在項目中使用了用它導出的文件,其中用到了一個圖片控件,他在cocos2d-x中對應的類是UIImageView,本想通過Tag來獲取該類的一個對象,並通過他的runAction方法爲他綁定一個序列幀動作的,但在運行時卻發現沒有自己想的那麼簡單,運行時會產生內存異常。經過一番百度谷歌後都沒看到解決方法,但倒是在CocoChina論壇中找到了同命相連的人,他最終採用的方法是使用Armature加載cocostudio動作編輯器產生的動作,但由於Z軸次序問題,還是不太適合自己的項目。想想使用普通精靈來代替,但發現Z軸次序的問題同樣存在。好吧,沒辦法,要麼放棄這個從Cocostudio導出的UI,自己代碼編寫,要麼繼續探索,。。。好吧,我還是選擇繼續探索吧。最終在羣裏的羣裏網友的提示下,“遍歷”了一遍UIImageView類的方法,發現該類有一個值得一試的方法:setTexture,他可以實現更換該類對象的紋理,ok,咱自己來實現幀動畫,方法很簡單:註冊一個定時器,時間間隔是幀動畫的幀間隔,然後在他的回調中按照幀的順序來更換UIImageView類對象的紋理,經過測試,基本通過。


   雖然眼前的問題得到了解決,但這種方法卻也不值得提倡,首先我的cocos2d-x版本是2.2.0,其中對UIImageView類setTexture方法的描述是,該方法將被廢棄。。。,其二,該方法無重載,並且參數是const char* fileName。。。這意味着,每一幀都需操作IO,這對那些對流暢度要求較高的幀動畫將是致命的打擊。


   個人對Cocos2d-x目前還屬初學,對於內部實現原理還不太清楚,期待大家能找到更好的解決方法,並分享出來!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章