cocosbuilder中scrollview的使用




//
//  Created by sky on 14-8-19.
#include  <iostream>
#include 
"cocos2d.h"
#include 
"cocos-ext.h"
USING_NS_CC
;
USING_NS_CC_EXT ;

class  DaojuHelpLayer: public   CCLayer ,
                     public   CCNodeLoaderListener ,
                    
public   CCBSelectorResolver ,
                    
public   CCBMemberVariableAssigner
{
private :
    
CCScrollView  *m_pScrollView;
    
CCControlButton  *m_pButton;
    
void  onBackBtnCallback( CCObject  *p, CCControlEvent  *e);
public :
    
static   CCScene * createScene();
    
static   CCNode * createDaojuHelpLayer();
    DaojuHelpLayer();
    ~DaojuHelpLayer();
    
    
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD ( DaojuHelpLayer , create);

    
// 节点加载完毕调用
    
virtual   void  onNodeLoaded( CCNode  * pNode,  CCNodeLoader  * pNodeLoader);
    
    
// 实现 CCBMemberVariableAssigner 接口 连接变量
    
virtual   bool  onAssignCCBMemberVariable( CCObject * pTarget,  const   char * pMemberVariableName,  CCNode * pNode);
    
    
// 实现 CCBSelectorResolver 接口,   用于连接菜单项
    
virtual   SEL_MenuHandler  onResolveCCBCCMenuItemSelector( CCObject  * pTarget,  const   char * pSelectorName);
    
// 实现 CCBSelectorResolver 接口,   用于连接 CCControl
    
virtual   SEL_CCControlHandler  onResolveCCBCCControlSelector( CCObject  * pTarget,  const   char * pSelectorName);
};

class  CCBReader;

class  DaojuHelpLayerLoader: public   CCLayerLoader
{
public :
    
// 使用 loader 创建 loader
    CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(DaojuHelpLayerLoader, loader);
protected :
    
// 调用 create 方法创建 DaojuHelpLayer 类对象
    CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(DaojuHelpLayer);
};


//
//  DaojuHelpLayer.cpp
//
//  Created by sky on 14-8-19.
//
//

#include  "DaojuHelpLayer.h"

DaojuHelpLayer ::DaojuHelpLayer()
{
    
}
DaojuHelpLayer ::~DaojuHelpLayer()
{
    
}

CCScene DaojuHelpLayer ::createScene()
{
    
CCScene  *scene =  CCScene :: create ();
    
    
CCNodeLoaderLibrary  *ccNodeLoaderLibrary =  CCNodeLoaderLibrary :: newDefaultCCNodeLoaderLibrary ();
    ccNodeLoaderLibrary -> 
registerCCNodeLoader ( "DaojuHelpLayer" DaojuHelpLayerLoader :: loader ());
    
cocos2d :: extension :: CCBReader  *reader =  new   cocos2d :: extension :: CCBReader (ccNodeLoaderLibrary);
    reader -> 
autorelease ();
    
CCNode  *node = reader-> readNodeGraphFromFile ( "DaojuHelpUI" , scene);
    
CCAssert (node!= NULL " 读取失败 " );
    scene -> 
addChild (node);
    
    
return  scene;
}

CCNode DaojuHelpLayer ::createDaojuHelpLayer()
{
    
CCNodeLoaderLibrary  *ccNodeLoaderLibrary =  CCNodeLoaderLibrary :: newDefaultCCNodeLoaderLibrary ();
    ccNodeLoaderLibrary -> 
registerCCNodeLoader ( "DaojuHelpLayer" DaojuHelpLayerLoader :: loader ());
    
cocos2d :: extension :: CCBReader  *reader =  new   cocos2d :: extension :: CCBReader (ccNodeLoaderLibrary);
    reader -> 
autorelease ();
    
CCNode  *node = reader-> readNodeGraphFromFile ( "DaojuHelpUI" );
    
CCAssert (node!= NULL " 读取失败 " );
    
return  node;
}

void   DaojuHelpLayer ::onNodeLoaded( cocos2d :: CCNode  *pNode,  cocos2d :: extension :: CCNodeLoader  *pNodeLoader)
{
    
CCLog ( "you will enter the daoju help layer..." );
    
CCLog ( "tag:%d" , m_pScrollView -> getTag ());
    
CCLog ( "maxoffset:%f,%f" , m_pScrollView -> minContainerOffset (). x , m_pScrollView -> minContainerOffset (). y );
    
m_pScrollView  ->  setContentOffset ( m_pScrollView -> minContainerOffset ());
}

bool   DaojuHelpLayer ::onAssignCCBMemberVariable( cocos2d :: CCObject  *pTarget,  const   char  *pMemberVariableName,  cocos2d :: CCNode  *pNode)
{
//    CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "mScrollView", CCScrollView*, this->m_pScrollView);
    CCB_MEMBERVARIABLEASSIGNER_GLUE(
this "backBtn" , CCControlButton*,  this ->m_pButton);
    CCB_MEMBERVARIABLEASSIGNER_GLUE_WEAK(
this "mScrollView" , CCScrollView*,  this ->m_pScrollView);
    
return   false ;
}

SEL_MenuHandler DaojuHelpLayer::onResolveCCBCCMenuItemSelector(cocos2d::CCObject *pTarget, 
const   char  *pSelectorName)
{
    
return   NULL ;
}

SEL_CCControlHandler DaojuHelpLayer::onResolveCCBCCControlSelector(cocos2d::CCObject *pTarget, 
const   char  *pSelectorName)
{
    
CCB_SELECTORRESOLVER_CCCONTROL_GLUE ( this "backToMain" DaojuHelpLayer :: onBackBtnCallback );
    
    
return   NULL ;
}

void   DaojuHelpLayer ::onBackBtnCallback( cocos2d :: CCObject  *p,  CCControlEvent  *e)
{
    
CCLog ( "backBtn callback..." );
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值