zoukankan      html  css  js  c++  java
  • cocos2dx ScrollView 测试三 指示器

    类似于iphone的主桌面,下面有一排小圆点的指示器,指示有几页,当前第几页。

    ScrollView是继承CCLayer,我们直接把指示器加到这里面试试。

    先加小圆点的图片进去。

    HelloWorld::init方法

        this->addChild(_scrollView);
        CCSprite *pointer2 = CCSprite::create("pointer.png");
        pointer2->setPosition(ccp(VisibleRect::center().x,200));
        _scrollView->addChild(pointer2, 10);
        
        CCSprite *pointer1 = CCSprite::create("pointer.png");
        pointer1->setPosition(ccp(VisibleRect::center().x-30,200));
        _scrollView->addChild(pointer1, 10);
        
        CCSprite *pointer3 = CCSprite::create("pointer.png");
        pointer3->setPosition(ccp(VisibleRect::center().x+30,200));
        _scrollView->addChild(pointer3, 10);
        return true;

    发现上面的做法不行,小圆点跟着拖动走了....否决!!

    那就把小圆点加到外面吧~~

    _scrollView = MyScrollView::create(CCSizeMake(640, 1136));
        //_scrollView->setContentSize();
        _scrollView->setDelegate(this);
        _scrollView->setTouchPriority(1);
        _scrollView->setContainer(container);
        _scrollView->setDirection(kCCScrollViewDirectionHorizontal);
        
        CCSprite *pointer1 = CCSprite::create("pointer_selected.png");
        pointer1->setPosition(ccp(VisibleRect::center().x-30,200));
        this->addChild(pointer1, 10,101);
        
        this->addChild(_scrollView);
        CCSprite *pointer2 = CCSprite::create("pointer.png");
        pointer2->setPosition(ccp(VisibleRect::center().x,200));
        this->addChild(pointer2, 10,102);
        
        CCSprite *pointer3 = CCSprite::create("pointer.png");
        pointer3->setPosition(ccp(VisibleRect::center().x+30,200));
        this->addChild(pointer3, 10,103);
        return true;
    void HelloWorld::scrollViewDidScroll(CCScrollView* view){
        int offset = (int)view->getContentOffset().x;
        
        CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("pointer_selected.png");
        CCTexture2D *textureNor = CCTextureCache::sharedTextureCache()->addImage("pointer.png");
        CCSprite *sp101 = (CCSprite*) this->getChildByTag(101);
        CCSprite *sp102 = (CCSprite*) this->getChildByTag(102);
        CCSprite *sp103 = (CCSprite*) this->getChildByTag(103);
        sp101->setTexture(textureNor);
        sp102->setTexture(textureNor);
        sp103->setTexture(textureNor);
        if(offset>-320){
            sp101->setTexture(texture);
        }else if(offset<=-320&&offset>-960){
            sp102->setTexture(texture);
        }else{
            sp103->setTexture(texture);
        }
        CCLog("scrollViewDidScroll offset:%d",offset);
    }

    见效果图

    等有时间把以上这些封装总结一下吧。

  • 相关阅读:
    媒体查询
    H5 progress标记
    sqlite数据库常用语句
    C#导出Word文档开源组件DocX
    bat实现监控进程守护程序-保证平台服务的稳定执行
    windows开机自动执行bat脚本启动cmd命令窗口并执行命令,最后自动关闭cmd命令窗
    Python实现定时执行任务的三种方式简单示例
    bat实现守护程序保证平台正常运行
    Windows CMD命令大全
    Windows下使用批处理文件.bat删除旧文件
  • 原文地址:https://www.cnblogs.com/hanhongmin/p/3501899.html
Copyright © 2011-2022 走看看