Feathers:slider

来自Starling中文站
跳转到: 导航, 搜索

原文地址:http://wiki.starling-framework.org/feathers/slider

目录

如何使用Feathers Slider组件

Slider组件 组件用来设定并显示最大与最小值区间中的一个值。这个值可以通过沿着水平或垂直轨道的滑块的滑动来改变调整。

基础部分

让我们开始来创建一个Slider。

var slider:Slider = new Slider();
slider.minimum = 0;
slider.maximum = 100;
slider.value = 50;
this.addChild( slider );
value 属性表示slider当前的值,而 minimummaximum 属性是建立一个范围区间。我们也可以用一对更有用的属性来进一步控制该slider的行为:
slider.step = 1;
slider.page = 10;

step属性是控制当slider被拖拽时,其值以什么样的步长变化。如果我们设定step为1,往上拖动时其值就会以整数形式变化,而不可能出现4.5这样的值。当你触摸slider轨迹时,会让page属性起作用。此值会反复地增长或减少直到触到轨迹的末端。一般来说,page是大于step的。

监听Event.CHANGE事件来判断该属性发生了变化:

slider.addEventListener( Event.CHANGE, slider_changeHandler );

监听器可能像这样:

function slider_changeHandler( event:Event ):void
{
    var slider:Slider = Slider( event.currentTarget );
    trace( "slider.value changed:", slider.value);
}

===== 对一个Slider着肤

Slider皮肤控件分成2或3部分。

对Thumb着肤

一个slider的thumb其实是一个简单的 Button控件,而且你可以像其他任何按钮一样着肤。如果你创建了一个主题,你可以指定[[1]]名称。

setInitializerForClass( Button, sliderThumbInitializer, Slider.DEFAULT_CHILD_NAME_THUMB );

或者可以这样,你可以传thumb的属性到Slider的thumbProperties属性中。下面,我们会传Starling Image 显示对象给thumb的每个皮肤状态。

slider.thumbProperties.defaultSkin = new Image( upTexture );
slider.thumbProperties.downSkin = new Image( downTexture );
slider.thumbProperties.hoverSkin = new Image( hoverTexture );

对Track(s)着肤

slider的track由一两个按钮组成,其依赖于trackLayoutMode的属性值。默认情况下,其为一个单一的填充于这个slider的整个宽高的轨迹。如果你想把按钮分开在track的两边(一边是minimum,另一边是maximum),那么我们可以设定trackLayoutMode到 Slider.TRACK_LAYOUT_MODE_MIN_MAX。这种方式中,每个track的宽度都会随着thumb移动而调整,以确保两个track永远重合在thumb的中心。

如果我们创建了一个theme,那么我们就可以创建一个用名为Slider.DEFAULT_CHILD_NAME_MINIMUM_TRACK的Button类设定的initializer,来设 定"minimum"轨迹到thumb的左边或底部。如果我们使用Slider.TRACK_LAYOUT_MODE_SINGLE,就是设定单一的track。同样,我们根据slider的方向,可以创建一个用名为Slider.DEFAULT_CHILD_NAME_MAXIMUM_TRACK的Button类设定的initializer,来设定"minimum"轨迹到thumb的右边或顶部。

setInitializerForClass( Button, sliderMinimumTrackInitializer, Slider.DEFAULT_CHILD_NAME_MINIMUM_TRACK );
setInitializerForClass( Button, sliderMaximumTrackInitializer, Slider.DEFAULT_CHILD_NAME_MAXIMUM_TRACK );

除此之外,我们可以使用minimumTrackProperties和maximumTrackProperties来传递按钮皮肤。

slider.minimumTrackProperties.defaultSkin = new Scale9Image( onTrackUpTextures );
slider.minimumTrackProperties.downSkin = new Scale9Image( onTrackDownTextures );
slider.maximumTrackProperties.defaultSkin = new Scale9Image( offTrackUpTextures );
slider.maximumTrackProperties.downSkin = new Scale9Image( offTrackDownTextures );

另一方面,如果我们想一个总是填充包括slider边缘的整长的track,那么我们可以设置trackLayoutMode给lider.TRACK_LAYOUT_MODE_SINGLE。既然如此,我们还可以只通过minimumTrackProperties设置单一的track属性。那么maximumTrackProperties 就会被忽略。

slider.minimumTrackProperties.defaultSkin = new Scale9Image( trackTextures );

Slider.TRACK_LAYOUT_MODE_SINGLE通常是track处于静态出现情况下的最佳情况。当你想track处于按下或悬停状,Slider.TRACK_LAYOUT_MODE_MIN_MAX会运转的更佳,因为此状态只在thumb的一边改变。

无Thumb

一个slider也提供一个[[2]]属性。如果设置false,thumb就隐藏了,同时track变成可拖动状态。联合minimum和maximum的track来生成一个增长的颜色值填充的slider。

相关链接

For more tutorials, return to the Feathers Documentation.


翻译者:郭必江

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱