本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-X 节点(UISlider.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
///cocos2d-x-3.0alpha0/extensions/CocoStudio/GUI/UIWidgets
#ifndef __UISLIDER_H__
#define __UISLIDER_H__
#include "../BaseClasses/UIWidget.h"
NS_CC_EXT_BEGIN
typedef enum
{
SLIDER_PERCENTCHANGED
}SliderEventType;
typedef void (CCObject::*SEL_SlidPercentChangedEvent)(Object*,SliderEventType);
#define sliderpercentchangedselector(_SELECTOR) (SEL_SlidPercentChangedEvent)(&_SELECTOR)
class UISlider : public UIWidget
{
public:
/**
* Default constructor
*/
UISlider();
/**
* Default destructor
*/
virtual ~UISlider();
/**
* Allocates and initializes.
*/
static UISlider* create();
/**
* Load texture for slider bar.
*
* @param fileName file name of texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadBarTexture(const char* fileName,TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Sets if slider(滑块) is using scale9 renderer. //渲染
*
* @param true that using scale9 renderer, false otherwise. //渲染
*/
void setScale9Enabled(bool able);
/**
* Sets capinsets for slider(滑块), if slider(滑块) is using scale9 renderer. //渲染
*
* @param capInsets capinsets for slider(滑块)
*/
void setCapInsets(const Rect &capInsets);
/**
* Sets capinsets for slider(滑块), if slider(滑块) is using scale9 renderer.
*
* @param capInsets capinsets for slider
*/
void setCapInsetsBarRenderer(const Rect &capInsets);
/**
* Sets capinsets for slider(滑块), if slider is using scale9 renderer.
*
* @param capInsets capinsets for slider
*/
void setCapInsetProgressBarRebderer(const Rect &capInsets);
/**
* Load textures for slider(滑块) ball.
*
* @param slider ball normal normal state texture.
*
* @param slider ball selected selected state texture.
*
* @param slider ball disabled dark state texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadSlidBallTextures(const char* normal,const char* pressed,const char* disabled,TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Load normal state texture for slider(滑块) ball.
*
* @param normal normal state texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadSlidBallTextureNormal(const char* normal,TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Load selected state texture for slider(滑块) ball.
*
* @param selected selected state texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadSlidBallTexturePressed(const char* pressed,TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Load dark state texture for slider(滑块) ball.
*
* @param disabled dark state texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadSlidBallTextureDisabled(const char* disabled,TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Load dark state texture for slider(滑块) progress bar.
*
* @param fileName file path of texture.
*
* @param texType @see UI_TEX_TYPE_LOCAL
*/
void loadProgressBarTexture(const char* fileName, TextureResType texType = UI_TEX_TYPE_LOCAL);
/**
* Changes the progress direction of slider(滑块).
*
* @param percent percent value from 1 to 100.
*/
void setPercent(int percent);
/**
* Gets the progress direction of slider(滑块).
*
* @return percent percent value from 1 to 100.
*/
int getPercent();
/**
* Add call back function called when slider's percent has changed to slider(滑块). //滑块 移动时的回调函数
*/
void addEventListener(Object* target,SEL_SlidPercentChangedEvent selector);
//override "onTouchBegan" method of widget.
virtual bool onTouchBegan(const Point &touchPoint);
//override "onTouchMoved" method of widget.
virtual void onTouchMoved(const Point &touchPoint);
//override "onTouchEnded" method of widget.
virtual void onTouchEnded(const Point &touchPoint);
//override "onTouchCancelled" method of widget.
virtual void onTouchCancelled(const Point &touchPoint);
//override "getContentSize" method of widget.
virtual const Size& getContentSize() const;
//override "getVirtualRenderer" method of widget.
virtual Node* getVirtualRenderer();
//override "ignoreContentAdaptWithSize" method of widget.
virtual void ignoreContentAdaptWithSize(bool ignore);
/**
* Returns the "class name" of widget. //返回 widget的 名字
*/
virtual const char* getDescription() const;
protected:
virtual void initRenderer();
float getPercentWithBallPos(float location);
void percentChangedEvent();
virtual void onPressStateChangedToNormal();
virtual void onPressStateChangedToPressed();
virtual void onPressStateChangedToDisabled();
virtual void onSizeChanged();
void barRendererScaleChangedWithSize();
void progressBarRendererScaleChangedWithSize();
protected:
Node* _barRenderer;
Node* _progressBarRenderer;
Size _progressBarTextureSize;
Sprite* _slidBallNormalRenderer;
Sprite* _slidBallPressedRenderer;
Sprite* _slidBallDisabledRenderer;
Node* _slidBallRenderer;
float _barLength;
int _percent;
bool _scale9Enabled;
bool _prevIgnoreSize;
std::string _textureFile;
std::string _progressBarTextureFile;
std::string _slidBallNormalTextureFile;
std::string _slidBallPressedTextureFile;
std::string _slidBallDisabledTextureFile;
Rect _capInsetsBarRenderer;
Rect _capInsetsProgressBarRenderer;
Object* _slidPercentListener;
SEL_SlidPercentChangedEvent _slidPercentSelector;
TextureResType _barTexType;
TextureResType _progressBarTexType;
TextureResType _ballNTexType;
TextureResType _ballPTexType;
TextureResType _ballDTexType;
};
NS_CC_EXT_END
#endif /* defined(__CocoGUI__UISlider__) */