[Cocosbuilder] Custom variable hooks into Sprite

In Cocosbuilder, I have a root layer contains Sprite A. And Sprite A contains Sprite B

I want to hook custom variable sprtB which declared in Sprite A with Sprite B. I tried it but it not works. In CocosBuilder I have already set sprtB is doc root var. In code I have already set SpriteA derived from CCMemberVariableAssigner.

Can you tell me some advices?

Hello,

Anybody can help me?

Since you set spriteB as doc root var, and the root is a layer, you should set that layer as the CCMemberVariableAssigner.

Or you could set spriteB as owner var, set spriteA as CCMemberVariableAssigner, and pass spriteA as the owner param while reading the ccb.

Le Yang wrote:

Since you set spriteB as doc root var, and the root is a layer, you should set that layer as the CCMemberVariableAssigner.
>
Or you could set spriteB as owner var, set spriteA as CCMemberVariableAssigner, and pass spriteA as the owner param while reading the ccb.

SpriteA is not yet create while reading the ccb. spriteA and spriteB is in the layer that is created when reading the ccb.

I expected Cocos2dx assign member variable with variable in Cocosbuilder recursively like NodeLoaderListener mechanism but it not work. I mean when I have Layer implement CCMemberVariableAssigner, Layer contains variable spriteA (also set in cocosbuilder), spriteA has type is SpriteA (also implement CCMemberVariableAssigner), SpriteA class contains variable spriteB (also set in cocosbuilder). When program runs, it should hook variable of cocosbuilder with variable in code.

I try to change CCBReader::readNodeGraph(CCNode * pParent) following

if(memberVarAssignmentType != kCCBTargetTypeNone) { CCObject * target = NULL; if(memberVarAssignmentType == kCCBTargetTypeDocumentRoot) { target = mActionManager->getRootNode(); } else if(memberVarAssignmentType == kCCBTargetTypeOwner) { target = this->mOwner; }

into

if(memberVarAssignmentType != kCCBTargetTypeNone) { CCObject * target = NULL; if(memberVarAssignmentType == kCCBTargetTypeDocumentRoot) { target = pParent; } else if(memberVarAssignmentType == kCCBTargetTypeOwner) { target = this->mOwner; }

And it works. Above It’s a error of cocos2dx or my wrong usage?