• 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()
    {
        
    }

    CCSceneDaojuHelpLayer::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;
    }

    CCNodeDaojuHelpLayer::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...");
    }



  • 相关阅读:
    QQ在线人数图表
    使LumaQQ.NET支持接收长消息
    发现有趣的东东,Live Mail能自动显示人名
    关于转换QQ消息中系统表情,自定义表情和截图的函数
    使用Autofac,提示重写成员“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(System.Type)”时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性匹配。
    libvirt笔记(未完待续)
    OpenStack Grizzly版本部署(离线)
    git学习笔记
    MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
    Response 关于浏览器header的方法
  • 原文地址:https://www.cnblogs.com/skyxu123/p/9543821.html
Copyright © 2020-2023  润新知