使用组合框组件可以设计出大家常见的下拉菜单。我们可以创建静态文本框和可输入文本框两个组合框组件。静态的组合框只可以拖动滚动条来选择菜单中的项目,而可输入文本框与静态的组合框所不同的就是可以在顶端输入所需要的菜单项,如图所示。
组合框组件的索引是从数字0开始的,也就是组合框显示的第一个菜单项目的索引值为0。可以使用小键盘的方向键来控制组合框组件里菜单选项的选择:
敲击一下方向键↑可以向上移动一个单位。
敲击一下方向键↓可以向下移动一个单位。
敲击PageUp键会向上滚动5个菜单选项。
敲击PageDown键会向下滚动5个菜单选项。
敲击Home键可以跳转到菜单的第一个选项。
敲击End键可以跳转到菜单的第一个选项。
Editable(可编辑):设置组合框是否可以提供文本地输入功能。假如设置该项的参数为true,组合框就提供文本输入功能;假如设置该项的参数为false,就不能在组合框内输入文本,但可以拖动滚动条进行选择。
Labels(标签):标签的功能是给组合框输入各菜单选项。双击该选项会弹出如图15所示的values(参数)面板。图15中四个按钮的功能分别是增减菜单选项和上下移动菜单选项。
Data(数据):同Labels参数选项一样,Data中的数据也是一个字符串数组。Data参数中的数组元素分别对应着Labels参数中的元素,其值也可以从values面板中输入。
RowCount(行数):该参数选项的功能是设置同时显示菜单的数目,默认值为8。假如该参数选项的参数值为5,打开下拉菜单时可以同时显示5个菜单项目。
ChangeHandler:执行用户自定义的函数。该参数选项的参数为用户定义函数的函数名。在函数被调用前,我们需要对它进行定义,而且函数需要和实体在同一时间轴列上。还有,该函数还可以使用组合框的实体名作为自己的参数。
现在我们从Components面板中拖拽一个ComboBox组件到场景中,然后打开它的参数设置面板,将组件名设置为ComboBox。然后双击属性参数的Labeles选项的右侧,会弹出如下的菜单,我通过"+"可以增加项目,也可以标签的数目,要害看自己了,对其进行如下的设置:(如图)
接着双击Data参数选项,在弹出的values面板中输入和目录名相对应的连接地址,输入后的设置如图所示。在Change Handler参数选项里输入“yujia”。当选择下来导航条中的菜单选项时,函数"yujia"将被执行。“ComboBox”是组合框的实体名。
这个是全部设置完的组合框参数,如图:
右键单击场景中的第1帧,打开Actions面板,输入如下代码:
//ComboBox就是场景中组件的实体名,方法setSize用来改变组件的宽度
ComboBox.setSize(150);
//为ComboBox创建yujia函数
function yujia(obj) {
//obj._name取得组件的实体名,假如实体名为ComboBox则往下执行
if (obj._name == "ComboBox") {
//getURL()方法可以打开浏览器
getURL(obj.getvalue());
}
}
在代码中使用参数obj是让函数能够判定到底是哪个组件在调用它。一般情况下我们也不会为每个组件都创建一个函数,而是让它们使用同一个函数进行处理。
源文件:
点击浏览该文件