我正在设计一个只有几个面部按钮的物理机控制器的虚拟模拟。我正在尝试使用箭头按钮滚动菜单,并在单击输入按钮时修改所选值。现在,它按照我想要的方式运行,但当它切换回菜单控件并滚动时,菜单上的下一个值(即温度1,2,3 )将被覆盖。以前。这是当前控制所选/未选定功能的代码片段,它位于Enter Frame事件侦听器中:
//--SWITCHES BETWEEN SCROLL AND EDIT--//
if (changerSwitch == true)
{
changerMenu = changer;
minValue = menuMin;
maxValue = menuMax;
ScreenMain.selectedShade.visible = false;
ScreenSmall.selectedShade.visible = false;
}
else
{
changerValue = changer;
minValue = valueMin;
maxValue = valueMax;
ScreenMain.selectedShade.visible = true;
ScreenSmall.selectedShade.visible = true;
}
switch(mainMenuIndex)
{
case 0:
break;
case 1:
temperature1 = changerValue;
break;
case 2:
temperature2 = changerValue;
break;
case 3:
temperature3 = changerValue;
break;
default:
break;
}
MainMenuIndex
是当前菜单选项的参考号,设置为changerMenu
。向上和向下按钮只需向值changer
添加和减去1即可。输入按钮只会翻转changerSwitch
布尔值。
//--FACE BUTTONS--//
WS_btn_down.addEventListener(MouseEvent.MOUSE_DOWN, f1_MenuDown);
function f1_MenuDown(event: MouseEvent): void {
if (changer < maxValue)
{
changer ++;
}
}
WS_btn_up.addEventListener(MouseEvent.MOUSE_DOWN, f1_MenuUp);
function f1_MenuUp(event: MouseEvent): void {
if (changer > minValue)
{
changer --;
}
}
WS_btn_enter.addEventListener(MouseEvent.MOUSE_DOWN, f1_MenuEnter);
function f1_MenuEnter(event: MouseEvent): void {
if (changerSwitch == true)
{
changerSwitch = false;
changer = changerValue;
}
else
{
changerSwitch = true;
changer = changerMenu;
}
}
我不知道这是否是最好的方法,但我只是想获得结果。为了使下一个选定菜单选项的值保持不变,我需要做什么?