Skip to content

Commit ed5fdbe

Browse files
committed
implement slider ball turn gray effect
1 parent f7f5020 commit ed5fdbe

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

extensions/ccui/base-classes/UIWidget.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1692,6 +1692,14 @@ ccui.Widget = ccui.ProtectedNode.extend(/** @lends ccui.Widget# */{
16921692
cc.arrayRemoveObject(this._nodes, node);
16931693
},
16941694

1695+
_getNormalGLProgram: function () {
1696+
return cc.shaderCache.programForKey(cc.SHADER_SPRITE_POSITION_TEXTURECOLOR);
1697+
},
1698+
1699+
_getGrayGLProgram: function () {
1700+
return cc.shaderCache.programForKey(cc.SHADER_SPRITE_POSITION_TEXTURECOLOR_GRAY);
1701+
},
1702+
16951703
/**
16961704
* Removes node by tag
16971705
* @deprecated since v3.0, please use removeChildByTag instead.

extensions/ccui/uiwidgets/UISlider.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,7 @@ ccui.Slider = ccui.Widget.extend(/** @lends ccui.Slider# */{
648648
this._slidBallDisabledRenderer.setVisible(false);
649649

650650
this._slidBallNormalRenderer.setScale(this._sliderBallNormalTextureScaleX, this._sliderBallNormalTextureScaleY);
651+
this._slidBallNormalRenderer._renderCmd._shaderProgram = this._getNormalGLProgram();
651652
},
652653

653654
_onPressStateChangedToPressed: function () {
@@ -658,12 +659,16 @@ ccui.Slider = ccui.Widget.extend(/** @lends ccui.Slider# */{
658659
this._slidBallPressedRenderer.setVisible(true);
659660
this._slidBallDisabledRenderer.setVisible(false);
660661
}
662+
this._slidBallNormalRenderer._renderCmd._shaderProgram = this._getNormalGLProgram();
661663
},
662664

663665
_onPressStateChangedToDisabled: function () {
664666
if (this._slidBallDisabledTextureFile) {
665667
this._slidBallNormalRenderer.setVisible(false);
666668
this._slidBallDisabledRenderer.setVisible(true);
669+
} else {
670+
this._slidBallNormalRenderer.setVisible(true);
671+
this._slidBallNormalRenderer._renderCmd._shaderProgram = this._getGrayGLProgram();
667672
}
668673
this._slidBallNormalRenderer.setScale(this._sliderBallNormalTextureScaleX, this._sliderBallNormalTextureScaleY);
669674
this._slidBallPressedRenderer.setVisible(false);

0 commit comments

Comments
 (0)