2012-01-08 12 views
0

嘿目前我試圖檢查CCMenuItemImage的當前圖像是這樣的:檢查CCMenuItemImage的當前圖像?

if (ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"]) { 

但問題是,這個if語句不會被調用。儘管我在init方法中將CCMenuItemImage的普通圖像設置爲Image1.png。

有沒有另一種方法我應該這樣做?

謝謝!

回答

2

此代碼永遠不會爲真:

ipodButton.normalImage == [CCSprite spriteWithFile:@"Image1.png"] 

的原因是,你正在創建一個CCSprite的新實例。這將是與存儲在normalImage中的精靈不同的精靈,因此比較失敗,因爲兩個指針指向不同的內存地址。不用說,每次執行這行代碼時,都會創建一個新的CCSprite並在此後不久發佈,這會浪費CPU週期。正確的方法是使用標籤屬性:

ipodButton.normalImage.tag = 10; 
if (ipodButton.normalImage.tag == 10) { … }