好几天了,也没解决,总是无法绑定成功。我是按照例子里的写的。
bool ZhuLayer::onAssignCCBMemberVariable(CCObject * pTarget, CCString * pMemberVariableName, CCNode * pNode) {
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "_lbCurFloor", CCLabelTTF *,
this->_lbCurFloor);
_lbCurFloor->setString("hhh");;
// CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "_bgMid", CCSprite *,_bgMid1);
// _bgMid->setPosition(ccp(0,0));
return false;
}
这个_lbCurFloor总是null.
下面833
这个图是我的cocosbuilder文件。
下面是Zhulayer声明
class ZhuLayer
: public cocos2d::CCLayer
, public cocos2d::extension::CCBSelectorResolver
, public cocos2d::extension::CCBMemberVariableAssigner
, public cocos2d::extension::CCNodeLoaderListener
{
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(ZhuLayer, create);
ZhuLayer();
virtual ~ZhuLayer();
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, cocos2d::CCString * pSelectorName);
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::CCObject * pTarget, cocos2d::CCString * pSelectorName);
virtual bool onAssignCCBMemberVariable(cocos2d::CCObject * pTarget, cocos2d::CCString * pMemberVariableName, cocos2d::CCNode * pNode);
virtual void onNodeLoaded(cocos2d::CCNode * pNode, cocos2d::extension::CCNodeLoader * pNodeLoader);
void gameLogic(float dt);
void setBgStep(float t){_bgMoveStep = t;}
private:
CCSprite* _bgMid1;
CCSprite* _bgMid2;
CCLabelTTF *_lbCurFloor;
float _bgMoveStep;
};
class ZhuLayerLoader : public cocos2d::extension::CCLayerLoader {
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(ZhuLayerLoader, loader);
protected:
CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(ZhuLayer);
};
加载代码如下;
(ZhulinLayer*)loadCCBI("zhulin.ccbi","ZhuLayer",ZhuLayerLoader::loader());
loadCCBI的定义:
CCNode* MainScene::loadCCBI(const char * pCCBFileName, const char * pCCNodeName, CCNodeLoader * pCCNodeLoader) {
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
if(pCCNodeName != NULL && pCCNodeLoader != NULL) {
ccNodeLoaderLibrary->registerCCNodeLoader(pCCNodeName, pCCNodeLoader);
}
cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
ccbReader->autorelease();
CCNode * node = ccbReader->readNodeGraphFromFile(pCCBFileName, this);
if(node != NULL) {
this->addChild(node);
return node;
}
return NULL;
}