有人可以帮助我,我正在尝试访问驻留在CCLayer子类(GameLayer)中的CCLabelTTF,但我想从另一个Player类(也是CCLayer)访问它。我想
[self getChildByTag: DEBUG_LABEL];
搜索场景并找到与其匹配的对象并返回指向它的指针,因为所有对象都存储在树数据结构中。
我可以使用以下代码通过反复试验来访问标签,但是如果有人可以建议我是否不理解getChildByTag
方法或者是否有方法在场景中搜索对象,我会很感激不使用下面的代码。
CCLabelTTF *lbl = (CCLabelTTF *)[[[[CCDirector sharedDirector] runningScene] getChildByTag: GAME_LAYER_TAG] getChildByTag: DEBUG_LABEL_TAG];
请告知。
答案 0 :(得分:0)
getChildByTag
仅检查调用它的父CCNode
的直接子项。它不会检查孩子的孩子(孙子,如果你愿意的话)。
例如,如果您的节点层次结构如下所示:
MyCCLayer1-> MyCCLayer2-> MyCCSprite-> MyCCLabel
调用MyCCLayer1只能通过getChildByTag
调用直接访问MyCCLayer2。反过来,MyCCLayer2可以调用getChildByTag
来获取MyCCSprite,然后MyCCSprite可以调用getChildByTag
来获取MyCCLabel。