NumericStepper 组件允许用户逐个通过一组有序数字。该组件由显示在小上下箭头按钮旁边的文本框中的数字组成。用户按下按钮时,数字将按
stepSize
参数中指定的单位递增或递减,直到用户释放按钮或达到最大或最小值为止。NumericStepper 组件的文本框中的文本也是可编辑的。
每个 NumericStepper 实例的实时预览反映了“属性”检查器或“组件”检查器中 value 参数的设置。但是,在实时预览中,无法通过鼠标或键盘与 NumericStepper 的箭头按钮进行交互。
与 NumericStepper 组件的用户交互
NumericStepper 组件可用于任何您想让用户选择数值的场合。例如,可以在表单中使用 NumericStepper 组件来设置信用卡到期日期的月、日和年。还可以使用 NumericStepper 组件来允许用户改变字体大小。
NumericStepper 组件只处理数值数据。此外,要显示两个以上的数值位置(如数字 5246 或 1.34),您在创作时必须调整步进器的大小。
可以在应用程序中启用或禁用 NumericStepper。在禁用状态下,NumericStepper 不接收鼠标或键盘输入。当 NumericStepper 处于启用状态时,如果单击它或通过 Tab 切换到它,则它将获得焦点,且其内部焦点会设置到文本框。当 NumericStepper 实例具有焦点时,可以使用以下键来控制它:
键
|
说明
|
向下箭头
|
值一次变化一个单位。
|
向左箭头
|
在文本框中将插入点向左移动。
|
向右箭头
|
在文本框中将插入点向右移动。
|
Shift+Tab
|
将焦点移到前一个对象。
|
Tab
|
将焦点移到下一个对象。
|
向上箭头
|
值一次变化一个单位。
|
有关控制焦点的详细信息,请参阅
《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》
中的 FocusManager 类以及
使用 FocusManager
。
创建具有 NumericStepper 的应用程序
以下过程解释了如何在创作时将 NumericStepper 组件添加到应用程序。该示例将一个 NumericStepper 组件和一个 Label 组件放置到舞台上,然后在 NumericStepper 实例上创建一个
Event
.
CHANGE
事件的侦听器。当数字步进器中的值更改时,该示例会在 Label 实例的
text
属性中显示新值。
-
将 NumericStepper 组件从“组件”面板拖到舞台上。
-
在“属性”检查器中,输入实例名称
aNs
。
-
将 Label 组件从“组件”面板拖至舞台。
-
在“属性”检查器中,输入实例名称
aLabel
。
-
打开“动作”面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
import flash.events.Event;
aLabel.text = "value = " + aNs.value;
aNs.addEventListener(Event.CHANGE, changeHandler);
function changeHandler(event:Event) :void {
aLabel.text = "value = " + event.target.value;
};
此示例将标签的
text
属性设置为 NumericStepper 的值。只要 NumericStepper 实例中的值发生变化,
changeHandler()
函数就会更新标签的
text
属性。
-
选择“控制”>“测试影片”。
使用 ActionScript 创建 NumericStepper:
此示例使用 ActionScript 代码创建三个 NumericStepper,分别用于输入用户出生日期的月、日和年。该示例还为每个 NumericStepper 添加了用作提示和标识符的 Label。
-
创建一个新的 Flash (ActionScript 3.0) 文档。
-
将一个 Label 拖到“库”面板中。
-
将一个 NumericStepper 组件拖到“库”面板中。
-
打开“动作”面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
import fl.controls.Label;
import fl.controls.NumericStepper;
var dobPrompt:Label = new Label();
var moPrompt:Label = new Label();
var dayPrompt:Label = new Label();
var yrPrompt:Label = new Label();
var moNs:NumericStepper = new NumericStepper();
var dayNs:NumericStepper = new NumericStepper();
var yrNs:NumericStepper = new NumericStepper();
addChild(dobPrompt);
addChild(moPrompt);
addChild(dayPrompt);
addChild(yrPrompt);
addChild(moNs);
addChild(dayNs);
addChild(yrNs);
dobPrompt.setSize(65, 22);
dobPrompt.text = "Date of birth:";
dobPrompt.move(80, 150);
moNs.move(150, 150);
moNs.setSize(40, 22);
moNs.minimum = 1;
moNs.maximum = 12;
moNs.stepSize = 1;
moNs.value = 1;
moPrompt.setSize(25, 22);
moPrompt.text = "Mo.";
moPrompt.move(195, 150);
dayNs.move(225, 150);
dayNs.setSize(40, 22);
dayNs.minimum = 1;
dayNs.maximum = 31;
dayNs.stepSize = 1;
dayNs.value = 1;
dayPrompt.setSize(25, 22);
dayPrompt.text = "Day";
dayPrompt.move(270, 150);
yrNs.move(300, 150);
yrNs.setSize(55, 22);
yrNs.minimum = 1900;
yrNs.maximum = 2006;
yrNs.stepSize = 1;
yrNs.value = 1980;
yrPrompt.setSize(30, 22);
yrPrompt.text = "Year";
yrPrompt.move(360, 150);
-
选择“控制”>“测试影片”以运行此应用程序。
|
|
|