0

我正在尝试使用 Flash CS4 中的内置 AS3 滑块组件设置自定义皮肤。我有以下代码,但设置myslider.widthmyslider.height似乎没有任何效果。滑块仍以默认宽度和高度显示,并且我的自定义 sliderTrackSkin 正在按比例缩小。

import fl.controls.Slider;
import fl.controls.SliderDirection;
import fl.events.SliderEvent;

var myslider:Slider = new Slider();
myslider.direction = SliderDirection.VERTICAL;
myslider.width = 43;
myslider.height = 110;
myslider.minimum = 1;
myslider.maximum = 90;
myslider.value = 30;
myslider.snapInterval = 1;
myslider.liveDragging = true;
myslider.addEventListener(SliderEvent.CHANGE, slider_change);
myslider.move(640, 60);
myslider.setStyle("thumbUpSkin", thumb1);
myslider.setStyle("thumbDownSkin", thumb1);
myslider.setStyle("thumbOverSkin", thumb1);
myslider.setStyle("sliderTrackSkin", slidertrack1);
addChild(myslider);

我会很感激任何建议。谢谢。

4

2 回答 2

1

事实证明myslider.widthmyslider.height正在对父级生效,但滑块组件的拇指和轨道没有被调整大小。我不得不像这样手动调整拇指和轨道的大小:

var mysliderthumb = Sprite(myslider.getChildAt(1));
mysliderthumb.height = 34;
mysliderthumb.width = 15;

var myslidertrack = Sprite(myslider.getChildAt(0));
myslidertrack.height = 15;
myslidertrack.width = 100;

此外,因为我有myslider.direction = SliderDirection.VERTICAL,拇指和轨道被旋转了 90 度,所以我不得不相应地翻转宽度和高度。

于 2013-04-25T15:41:45.257 回答
0

在设置所有属性并应用皮肤后尝试调用myslider.validateNow()方法。

于 2013-04-25T00:24:46.767 回答