I have CCB file with CCNode like this (since i cannot post images),
- CCNode - Custom class (PanoController)
- -DrawerLayer - its only holder, of type CCLayer
- --rawImage - it is set as Doc root var with name : rawImage
I want to make rawImage to be instance of mySprite , not CCSprite as it is default.
So , The loader is like this for mySprite,
#include "mySprite.h"
class mySpriteLoader : public CCSpriteLoader{
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(mySpriteLoader, loader);
protected:
CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(mySprite);
};
also the mySprite.h is this ,
#include <iostream>
#include "cocos2d.h"
#include "cocos-ext.h"
using namespace cocos2d;
using namespace extension;
class mySprite : public CCSprite, public CCBMemberVariableAssigner {
public:
// CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(mySprite, create);
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(mySprite, create);
bool onAssignCCBMemberVariable(CCObject* pTarget, const char* pMemberVariableName, CCNode* pNode){ return false; };
mySprite(){CCLog("init mySprite");};
};
also i registered the mySprite loader like this,
m_loaderLibrary = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
m_loaderLibrary->registerCCNodeLoader("mySprite", mySpriteLoader::loader());
and in the method from the parent CCLayer set Member Assigner
bool PanoController::onAssignCCBMemberVariable(CCObject* pTarget, const char* pMemberVariableName, CCNode* pNode){
CCLOG("%s panoController Assign",pMemberVariableName);
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "rawImage", mySprite*, m_rawImage);
}
Still it throws error
Assertion failed: (m_rawImage), function onAssignCCBMemberVariable,
Any ideas, please help. Its working fine if its CCSprite , but mySprite not.