gpt4 book ai didi

java - Jmonkey 漂亮。检测用户是否停止滑动

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:30 29 4
gpt4 key购买 nike

有没有办法检测用户是否停止滑动?也许 bij 鼠标输入检查之类的。我尝试在 onSliderChange 事件中使用鼠标 isButton0Release 和 hasFocus 来检查用户是否停止滑动,但这不起作用。

到目前为止我得到了什么

@NiftyEventSubscriber(id = "speedSlider")
public void onSliderChange(String id, SliderChangedEvent event)
{ boolean test2 = event.getSlider().hasFocus();
boolean test = nifty.getMouseInputEventQueue().getLastMouseDownEvent().isButton0Release();
System.out.println("before " + test2);
int speed = (int)event.getValue();
speedTextField.getRenderer(TextRenderer.class).setText(speed + "");
if(test2){
System.out.println("after " + test2);
main.setSimSpeed(speed);
}
}

以及 xml 中的 slider

                <panel id="speed_up_down_panel" height="30px" width="180px" childLayout="center">         
<control id="speedSlider" name="horizontalSlider" width="150px" min="1" initial="1" buttonStepSize="1">
<image id="#position" filename="Interface/sliderbutton.png" visibleToMouse="true" width="40px" height="40px"></image>
</control>
</panel>

由于我正在测试,代码现在有点困惑。

最佳答案

我能想到的最简单的方法是定义您自己的控件,添加 onRelease事件处理程序:

<?xml version="1.0" encoding="UTF-8"?>
<nifty-controls xmlns="http://nifty-gui.lessvoid.com/nifty-gui">
<controlDefinition name="horizontalSlider" style="nifty-horizontal-slider"
controller="de.lessvoid.nifty.controls.slider.SliderControl"
inputMapping="de.lessvoid.nifty.controls.scrollbar.ScrollbarInputMapping">

<panel style="#panel">
<interact onMouseWheel="mouseWheel()"/>
<image style="#left">
<interact onClickRepeat="upClick()"/>
</image>
<image id="#background" style="#background">
<interact onClick="mouseClick()" onClickMouseMove="mouseClick()"/>
<image id="#position" style="#position">
<interact onClick="mouseClick()" onClickMouseMove="mouseClick()"
onRelease="onRelease()"/>
<!-- ^ ^ ^ ADD THIS ^ ^ ^ -->
</image>
</image>
<image style="#right">
<interact onClickRepeat="downClick()"/>
</image>
</panel>
</controlDefinition>

注意:我刚刚复制了 SliderControl 的原始定义并添加了 onRelease<interact>标签。请参阅:https://github.com/nifty-gui/nifty-gui/blob/1.4/nifty-controls/src/main/resources/nifty-controls/nifty-slider.xml

现在使用 XML 中的这一行加载这个新控件:
(将其插入到加载 nifty-default-controls.xml 的行之后)

<useControls filename="Interface/NewSlider.xml" />

然后添加一个方法public void onRelease()到您的 Controller 。

关于java - Jmonkey 漂亮。检测用户是否停止滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707729/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com