Я хочу получить текущий кадр моего Flash-ролика при его загрузке. Я следовал руководству, найденному здесь http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/index.html и SWFOBJECT CurrentFrame Javascript. Я использую бета-версию SWFObject 2.3. Это прекрасно работает в Internet Explorer, но не работает в Google Chrome.
В Chrome я получаю сообщение об ошибке
Uncaught TypeError: e.ref.currentFrame is not a function
Проверка e
возвращает [object Object]
Проверка e.ref
возвращает [object HTMLObjectElement]
Проверка e.ref.totalFrames
возвращает undefined
var flashvars = {};
var params = {};
var attributes = {};
function mycall(e){
setInterval(function(){console.log("Frame: " + e.ref.currentFrame)},1000);
}
swfobject.embedSWF("notmyswf.swf", "course", "100%", "100%", "6.0.0", false, flashvars, params, attributes, mycall);
Почему это не работает в Chrome, но хорошо работает в IE? Событие e
не обнаружено? Есть ли обходной путь, как заставить это работать в Chrome?
Цель этого для меня состоит в том, чтобы создать проверку, действительно ли пользователь использует курс, который он открыл, а не просто оставляет его бездействующим. Я уже добавил код, который будет проверять холостой ход, но этого недостаточно. Большинство учащихся нашли способ просто открыть курс и оставить его там, чтобы накапливать часы обучения. У некоторых даже есть программа, работающая на их компьютерах, которая просто перемещает мышь на 1 пиксель каждые несколько секунд, чтобы компьютер не простаивал. Если я могу проверить текущий кадр Flash-ролика, я могу создать функцию, которая будет вычислять текущую страницу, просматриваемую пользователем каждые 15 минут. Если он застрял на той же странице, я могу показать подсказку, которую пользователь должен щелкнуть, чтобы продолжить просмотр курса, иначе он автоматически закроется.
e.ref
— это ссылка на сам SWF. Он кроссбраузерный. Когда вы говорите, что проверкаe.ref.totalFrames
возвращаетundefined
, в какой момент вы проверяете? Внутри функцииsetInterval
или непосредственно в функцииmycall
? - person pipwerks   schedule 28.02.2017e.ref.totalFrames
иe.ref.currentFrame()
внутри setInterval, так как при запуске это значение еще недоступно, пока не загрузится Flash-ролик. - person Keith Leyson   schedule 28.02.2017TypeError: e.ref.currentFrame is not a function
Я получаю ту же ошибку в Firefox, что и в Chrome. IE11 отлично работает. вот несколько скриншотов ссылка ссылка - person Keith Leyson   schedule 28.02.2017