Щелкните Flash-объект с помощью JavaScript
Можно ли запускать событие click на объекте Flash через JavaScript?
Ответы
Ответ 1
Да и нет. Вы можете использовать ExternalInterface
, чтобы имитировать события кликов в вашем проекте Flash, при условии, что им не нужен источник событий (то есть человек или нет)).
Однако одна из особенностей Flash, особенно утомительная относительно источника событий клика, - это диалог Выбор файла. Невозможно вызвать это без реального щелчка от реального пользователя (насколько это касается браузера); это, по возможности, потенциально может представлять угрозу для безопасности. Если я правильно помню, это было возможно до FP 9, и мы использовали это поведение для нашего файлового загрузчика. Это вызвало проблемы после их исправления, но я рад, что они это сделали:)
Типичным способом преодоления этого ограничения является создание прозрачного Flash-объекта и позиционирование слоя над ним, который показывает изображение кнопки; событие click в конечном итоге попадет в объект Flash и вызовет событие щелчка пользователя.
Ответ 2
Я никогда не тестировал это, так что это просто мысль
Обратите внимание, что вы должны иметь определенный div, который будет захватывать клики.
В ActionScript Для имитации события щелчка можно использовать.
element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false));
Так почему бы не создать внешнюю функцию, которая будет отправлять событие после получения вызова из JavaScript с помощью внешнего интерфейса? Конечно, это очень грубо, но это может сработать.
Actionscript:
import flash.external.*;
function simulateButtonClick()
{
// Here goes your code
}
ExternalInterface.addCallback("invokeSimulateButtonClick", simulateButtonClick);
JavaScript:
ExternalInterface.addCallback("invokeSimulateButtonClick", YOUR_VARIABLES);
Ответ 3
Это возможно с помощью Flash ExternalInterface
, но сначала нужно сначала написать ActionScript во Flash (.fla).
Некоторые ссылки -
Использование ExternalInterface во Flash
http://www.actionscript.org/resources/articles/638/1/Basics-of-using-the-ExternalInterface/Page1.html
http://www.adobe.com/devnet/flash/articles/external_interface.html
Ответ 4
Нет, вы не можете зафиксировать клики по встроенным элементам, если только они не находятся за div или что-то в этом роде.