比方說,我有兩個建行的文件如何使用自定義的類訪問變量子CCB文件作爲根節點在cocos2d-x
- FriendList.ccb
- Friend.ccb
FriendList.ccb助理和一個叫FriendList
類,它會讀取該文件,建行與節點像下面的代碼:
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如子建行的文件。
這些後確定,我現在假設有兩個Friend.ccb在FriendList.ccb,命名爲m_friend1
和m_friend2
,並在Friend.ccb有一個CCLabelTTF
名m_friend_name
。
予加載的Friend
兩個實例用下面的代碼在FriendList.cpp:
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;
}
和用下面的代碼加載CCLabelTTF
實例Friend.cpp:
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
。
那麼如何訪問sub ccb文件中的變量?