您好,登錄后才能下訂單哦!
這篇博文中,主要將自己今天在項目中使用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目前還屬初學,對于內部實現原理還不太清楚,期待大家能找到更好的解決方法,并分享出來!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。