假设我有两个 ccb 文件
- 好友列表.ccb
- 朋友.ccb
FriendList.ccb关联一个名为 的类FriendList
,它会从这个 ccb 文件中读取节点,代码如下:
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
CCBReader reader = CCBReader(ccNodeLoaderLibrary);
CCLayer* layer = (CCLayer*)reader.readNodeGraphFromFile("FriendList.ccbi", this);
Friend.ccb与一个自定义类名Friend
和一个名为FriendLoader
. 它还可以包含自己的变量,例如CCLabelTTF
, CCSprit
。
而在FriendList.ccb中,它可以包含许多Friend.ccb作为子 ccb 文件。
在这些定义之后,我现在假设 FriendList.ccb中有两个Friend.ccb,分别命名为and ,并且在Friend.ccb中有一个name 。m_friend1
m_friend2
CCLabelTTF
m_friend_name
我在FriendList.cppFriend
中使用以下代码加载了两个实例:
bool FriendList::onAssignCCBMemberVariable(CCObject *pTarget, CCString *pMemberVariableName, CCNode *pNode){
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "m_friend1", Friend*, m_friend1);
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "m_friend2", Friend*, m_friend2);
return false;
}
并在Friend.cppCCLabelTTF
中使用以下代码加载 的实例:
bool Friend::onAssignCCBMemberVariable(CCObject *pTarget, CCString *pMemberVariableName, CCNode *pNode){
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "m_friend_name", CCLabelTTF*, m_friend_name);
return false;
}
通过这些工作,我可以访问m_friend1
并m_friend2
成功,但是访问时m_friend1->m_friend_name
,我得到了EXC_BAD_ACCESS
.
那么如何访问子 ccb 文件中的变量呢?