У меня возникли проблемы с вызовом функции с помощью ExternalInterface.Вызов функции вспышки с использованием ExternalInterface
Во-первых, вот HTML/JS сторона:
<p align="right">
<object type="application/x-shockwave-flash" data="camera.swf"
width="200" height="200" align="right" id="camSWF">
<param name="movie" value="camera.swf" align="right" />
<param name="allowScriptAccess" value="always" />
</object></p>
<script type="text/javascript">
var flashObj = document.getElementById('camSWF');
document.onmousemove = setMouseXY;
function setMouseXY(e) {
var x = e.pageX;
var y = e.pageY;
flashObj.rotateCam(x, y, $(document).width(), $(document).height());
}
</script>
А во-вторых, здесь ActionScript 2 Код:
ExternalInterface.addCallback('setMouseXY', null, rotateCam);
function rotateCam(mouseX, mouseY, docWidth, docHeight)
{
// DO STUFF
}
Насколько я могу видеть, что все должно работать, но очевидно, что я что-то упускаю.
Всякий раз, когда срабатывает событие мыши на странице HTML, я получаю эту ошибку в Firebug:
flashObj.rotateCam is not a function:
flashObj.rotateCam(x, y, $(document).width(), $(document).height());
Я совсем застрял. Возможно, это какая-то вещь безопасности?
Или в ActionScript, вы можете использовать 'ExternalInterface.addCallback ('rotateCam', NULL, rotateCam);' работать с текущим яваскриптом кодом. – Diode
Хм, спасибо за это. В следующий раз я, вероятно, должен прочитать код немного осторожнее – Alex