This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好!
我尝试按照本主题中的上一条建议、通过单击按钮来设置目标值、从而实现了 javascript:
我已在 index.js 中实现:
const init = () => {
GcWidget.querySelector('#myButton').then(widget => {
widget.addEventListener('click', async () => {
const binding = bindingRegistry.getBinding('pm.sampledata');
const value = binding.getValue();
// value = 1;
const value2 = 1;
binding.updateValue(value2);
alert("Button Clicked!");
});
});
};
我在目标上有一个无限 while 循环来检查采样数据的值、如果"采样 数据"变为一些非零值、则会在电路板上切换一个 LED、并且另一个变量也会递增、我可以通过链接到另一个 GUI Composer 文本框来监控该变量。
我得到"按钮被点击了!" 当我按下按钮时发出警报、但我看不到正在设置采样数据。 (LED 不在切换、变量不会递增)。
我是否需要将"GcWidget.***"放在其他地方? 或者、我还需要做些什么才能使它正常工作吗?
谢谢!
请注意、我有一种权变措施、其中我实现了一个虚拟/隐藏输入框、使用 GUI Composer 将这个新输入的 Value 字段链接到目标上的"buttonpress"变量。 通过按钮、我可以使用非常类似的代码来更新输入框中的值、进而将值传输到目标。
但 它应该仍然可以 直接写入一个值到 pm.buttonpress、而且我仍想研究此选项。
总之、解决方法:
const init = () => {
GcWidget.querySelector('#myButton').then(widget => {
widget.addEventListener('click', async () => {
myFunction();
});
});
var myFunction = function(){
const binding = bindingRegistry.getBinding('input_1.value');
var value = binding.getValue();
value++;
binding.updateValue(value);
alert("myFunction() called");
};