0

有人可以帮助我吗,我正在尝试访问驻留在 CCLayer 子类(GameLayer)中的 CCLabelTTF,但我想从另一个 Player 类(也是 CCLayer)中访问它。我想

[self getChildByTag: DEBUG_LABEL];

搜索场景并找到与其匹配的对象并返回指向它的指针,因为所有对象都存储在树数据结构中。

我能够使用以下代码通过反复试验访问标签,但如果有人能建议我是否不理解该getChildByTag方法,或者是否有一种方法可以在不使用下面的代码的情况下搜索场景中的对象,我将不胜感激。

CCLabelTTF *lbl = (CCLabelTTF *)[[[[CCDirector sharedDirector] runningScene] getChildByTag: GAME_LAYER_TAG] getChildByTag: DEBUG_LABEL_TAG]; 

请指教。

4

1 回答 1

0

getChildByTagCCNode只检查调用它的父级的直接子级。它不会检查孩子的孩子(孙子,如果你愿意的话)。

例如,如果您的节点层次结构如下所示:

MyCCLayer1->MyCCLayer2->MyCCSprite->MyCCLabel

调用 MyCCLayer1 只能通过getChildByTag调用直接访问 MyCCLayer2。反过来,MyCCLayer2 可以调用getChildByTag以获取 MyCCSprite,然后 MyCCSprite 可以调用getChildByTag以获取 MyCCLabel。

于 2013-05-06T20:24:34.740 回答