Щелкните 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);

Ответ 4

Нет, вы не можете зафиксировать клики по встроенным элементам, если только они не находятся за div или что-то в этом роде.