Cocosbuttonクラスを使用して、シーンに追加されるボタンを作成しています。これにより、CCMenu 内の CCMenuItem に追加される CCSprite が作成されます。
@interface CocosButtonItem : CCMenuItem {
...
init メソッドでは、背景が追加されます。
UIImage *bgImage = [UIImage imageWithContentsOfFile:@"buttonback.png"],
back = [CCSprite spriteWithCGImage:bgImage.CGImage key:@"bgimage"];
back.anchorPoint = ccp(0,0);
self.contentSize = back.contentSize;
CCLayerColor *bgFill = [CCLayerColor layerWithColor:ccc4(255.0, 255.0, 255.0, 255.0)];
bgFill.contentSize = self.contentSize;
bgFill.position = ccp(0,0);
[self addChild:bgFill];
back.color = ccc3(255,255,255);
[self addChild:back]; // without this, I just get a whit layer (as intended)
最後の行を追加してスプライトを CCMenuItem に追加すると、背景が黒くなります (スクリーンショットを参照)。CCSprite 背景画像のソースは透明度のある 8 ビットの .png ですが、なぜこの黒い背景が表示されるのかわかりません。