2012-01-08 66 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) { … }