Таинственный цикл, который не работает в Adobe Captivate, как это исправить? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть код JavaScript для выполнения JavaScript в определенном кадре временной шкалы в Adobe Captivate.

Это код в окне 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");

Он будет запускать код JavaScript на конкретном кадре (независимо от того, какой номер кадра возвращает «correctFrame») на временной шкале ... Чтобы быть более ясным, я использовал эти строки кода, чтобы приостановить временную шкалу в определенном кадре, а затем внедрить мою строковую переменную (например, «привет») из javascript, чтобы увлечь (что я добился успеха, потому что вижу изменение переменной «SpeechReceived» на моем экран). Но проблема в том, что, хотя я вижу, что «SpeechReceived» на моем экране изменено на «привет», Captivate «цикл« не работает »и я не могу« продолжить »фильм ...

»

Вот скриншот моего простого проекта:

С видом на весь проект

И это мои блоки решений, которые создают скрипт "reza":

Блок первого решения

Первые три действия вычисляют точный кадр второго 2 слайда и сохраняют этот номер кадра в переменную "точный кадр".

Затем он запускает окно Script_Window прямо во второй 2 временной шкалы.

в Script_Window У меня есть JavaScript, чтобы изменить значение моей переменной с именем «SpeechReceived», а также она приостанавливает временную шкалу, как я уже говорил.

Теперь, пожалуйста, посмотрите на мое последнее решение:

Блок второго решения

Я хочу продолжить свою приостановленную временную шкалу всякий раз, когда SpeechReceived равен hello, но здесь возникает проблема: хотя моя переменная SpeechReceived меняется на hello, ничего не происходит ... кажется, что цикл while не работа и что-то идет не так ... Я что-то упускаю ??? (Это приложение для распознавания голоса, которое изменяет «SpeechReceived» на «привет» при голосовом вводе пользователя ...

Пользователь говорит "привет", и хронология продолжает фильм ... на самом деле мы ждем голоса пользователя ("привет"), чтобы продолжить ...

Звучит загадочно, почему в мире цикл while не работает ...)

Есть идеи, как исправить эту ошибку ???

1 Ответ

0 голосов
/ 04 марта 2019

Вместо использования команды «Продолжить» во втором блоке я бы предложил использовать команду Captivate для возобновления из фрейма - cpCmndGotoFrameAndResume.

Если вы хотите, чтобы ваша точка воспроизведения продолжалась со второго кадра, вместо вашей команды "continue" добавьте следующее: cpCmndGotoFrameAndResume = 2

За многие годы в Captivate я сделал много взаимодействий на основе фреймов ... и встроенные команды ole сделали меня правильно. Я

Надеюсь, это поможет вам ..

...