`

addTargetWithActionForControlEvents

 
阅读更多
原文地址:  http://blog.csdn.net/musicvs/article/details/8242963
按钮属性
    /* 正常状态下的按钮图片 */  
    CCScale9Sprite* btnNormal = CCScale9Sprite::create("button.png");  
  
    /* 点击状态下的按钮图片 */  
    CCScale9Sprite* btnDown = CCScale9Sprite::create("buttonHighlighted.png");  
  
    /* 按钮标题 */  
    CCLabelTTF *title = CCLabelTTF::create("Touch Me!3324234", "Marker Felt", 30);  
  
    /* 按钮的大小会根据标题自动调整 */  
    CCControlButton* controlBtn = CCControlButton::create(title, btnNormal);  
  
    /* 设置按钮按下时的图片 */  
    controlBtn->setBackgroundSpriteForState(btnDown, CCControlStateSelected);  
    controlBtn->setPosition(ccp(200, 200));  
    this->addChild(controlBtn);  


/* 强制设置按钮大小,如果按钮标题大小超过这个范围,则会自动扩大 */  
    controlBtn->setPreferredSize(CCSize(300, 50));  


按钮事件
/* 当鼠标处于按下并曾经点中按钮时,则触发一次 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragEnter), CCControlEventTouchDragEnter);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragExit), CCControlEventTouchDragExit);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragInside), CCControlEventTouchDragInside);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragOutside), CCControlEventTouchDragOutside);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInside), CCControlEventTouchUpInside);  
  
    /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutside), CCControlEventTouchUpOutside);  
  
    /* 暂时没有发现能用鼠标触发这个事件的操作,看了注释,应该是由其它事件中断按钮事件而触发的 */  
    controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventTouchCancel);  






回调函数

void touchDownAction(CCObject* pSender, CCControlEvent event);  
   void touchDragEnter(CCObject* pSender, CCControlEvent event);  
   void touchDragExit(CCObject* pSender, CCControlEvent event);  
   void touchDragInside(CCObject* pSender, CCControlEvent event);  
   void touchDragOutside(CCObject* pSender, CCControlEvent event);  
   void touchUpInside(CCObject* pSender, CCControlEvent event);  
   void touchUpOutside(CCObject* pSender, CCControlEvent event);  
   void touchCancel(CCObject* pSender, CCControlEvent event); 



CCControlEvent 不是指针,千万不要习惯了就给它加一个*号
分享到:
评论

相关推荐

    cocos2d-x 的CCControl控件的示例

    4. 使用`addTargetWithActionForControlEvents:`方法设置事件监听器,当控制元件的状态改变时触发相应动作。 5. 可能还会涉及动画效果,如按下时的视觉变化,以增加用户体验。 总的来说,这个示例将帮助开发者理解...

    Cocos2d-x UI开发之CCControlSlider控件类使用实例

    slider->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); ``` 这里,`HelloWorld::valueChanged`是我们定义的回调函数,当滑动条的值改变...

    Cocos2d-x UI开发之CCControlSwitch控件类使用实例

    controlSwitch->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); ``` 在`HelloWorld::valueChanged`方法中,我们可以处理开关状态改变的...

    Cocos2d-x UI开发之CCControlColourPicker控件类使用实例

    这通常通过`addTargetWithActionForControlEvents`方法完成,它接受三个参数:目标对象(通常是当前类的实例)、要执行的动作(这里是一个选择器`cccontrol_selector(HelloWorld::colorValueChanged)`)以及触发动作...

    Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例

    potentiometer->addTargetWithActionForControlEvents( this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); bRet = true; } while (0); return bRet; } // 当滑动条值...

    Cocos2d-x UI开发之CCControlButton控件类实例

    在本例中,添加了一个touchDown事件,通过addTargetWithActionForControlEvents方法将事件与处理函数touchDown绑定。当按钮被按下时,就会调用HelloWorld类中的touchDown函数,并输出日志信息"touchdown!"。 通过...

Global site tag (gtag.js) - Google Analytics