我有一个 javascript 代码可以在 Adobe Captivate 的时间线的特定帧中执行 javascript。
这是 JS 窗口中的代码:
window.cpAPIEventEmitter.addEventListener("CPAPI_VARIABLEVALUECHANGED",function(){
if(window.cpInfoCurrentFrame === window.exactFrame)
{
cp.movie.pause(cp.ReasonForPause.CPCMNDPAUSE);
speechResult ="hello";
window.cpAPIInterface.setVariableValue("SpeechReceived",speechResult);
}
},"cpInfoCurrentFrame");
它将在时间轴中的特定帧(“exactFrame”返回的帧号)上触发 JavaScript 代码......为了更清楚,我使用这些代码行在特定帧暂停时间轴,然后注入我的字符串变量(“例如,你好”)从 javascript 到迷人(我成功了,因为我可以在我的屏幕上看到更改变量“SpeechReceived”)。但问题是,即使我在屏幕上看到“SpeechReceived”更改为“hello”,Captivate“While loop”不起作用,我也无法“继续”电影......
这是我的简单项目的屏幕截图:
这些是我构建“reza”脚本的决策块:
前三个动作计算幻灯片第二个 2 的确切帧,并将该帧号保存到“exactFrame”变量。
然后它在时间线的第二个 2 处执行 Script_Window。
在 Script_Window 中,我有一个 JavaScript 来更改名为“SpeechReceived”的变量的值,并且它还暂停了我之前所说的时间线。
现在请看我最后的决定:
每当“SpeechReceived”等于“hello”时,我想继续我暂停的时间线,但问题是:虽然我的变量“SpeechReceived”更改为“hello”,但什么也没发生......似乎while循环不起作用这里出了问题......我错过了什么吗?(这是一个语音识别应用程序,可在用户语音输入时将“SpeechReceived”更改为“hello”......
用户说“你好”,时间线继续电影......实际上我们等待用户的声音(“你好”)才能继续......
这听起来很神秘,为什么在世界上while循环不起作用......)
任何想法如何修复该错误?