PDA

Просмотр полной версии : Програмная имитация Событий пользователя (клик, нажатие кнопки на клаве...)


djtheme
11.12.2009, 21:38
Вопрос тут возник - можно ли программно сгенерировать Клик мышкой или нажатие клавиши на клавиатуре - что бы было соответствующее Событие (Event)?

Поскольку предвижу очевидный ответ НЕТ (исходя из последних политик безопасности Flas, думаю так и есть - НЕЛЬЗЯ ГЕНЕРИТЬ ИВЕНТЫ),
по этому дополнительно спрошу - может это можно сделать с помощью JavaScript - у меня веб приложение для ресайза и загрузки фоток, но загрузка начинаеца только после верификации формы JavaScript-ом.

Просто нашел тут в хелпах URLLoader ((http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/net/URLLoader.html#load%28%29), а у меня запуск load из JavaScript иницилизируеца и ошибка генерица (SecurityError: Error #2176: Определённые действия, например, те, после которых появляется всплывающее окно, могут быть только результатом взаимодействия с пользователем, к таким действиям относятся щелчок мышью или нажатие кнопки.):


load () метод
public function load(request:URLRequest):void

Язык версии : ActionScript 3.0
Версии среды выполнения: 1.0 9

Отправляет и загружает данные с заданного URL-адреса. Данные могут быть получены как текст, необработанные двоичные данные или переменные в кодировке URL. Это зависит от значения, установленного для свойства dataFormat. Обратите внимание на то, что значением свойства dataFormat по умолчанию является текст. Для того чтобы отправить данные на указанный URL-адрес, можно установить свойство data в объекте URLRequest.

Примечание. Если загружаемый файл содержит символы, не принадлежащие коду ASCII (например, во многих языках, кроме английского), рекомендуется сохранить файл в кодировке UTF-8 или UTF-16, как противоположных стандарту ASCII.

SWF-файл в изолированной программной среде, локальной для файловой системы, может не поддерживать загрузку и передачу данных для ресурса, находящегося в сетевой изолированной программной среде.

По умолчанию вызывающий SWF-файл и загружаемый URL-адрес должны находиться в одном и том же домене. Например, SWF-файл на www.adobe.com может загружать данные только из источников, которые также размещены на сайте www.adobe.com. Чтобы загрузить данные с другого домена, разместите файл политики для URL на сервере, где расположены эти данные.

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение API-интерфейсов сетевого подключения" в главе книги Программирование на ActionScript 3.0.

В приложении Flash Player 10 и более поздней версии при использовании типа содержимого multipart (например, multipart/form-data), в котором содержится отправка (обозначена параметром filename в заголовке content-disposition в теле оператора POST), к операции POST применяются правила безопасности для отправок:

* Операция POST должна быть выполнена в ответ на действие, инициированное пользователем, такое как щелчок мыши или нажатие клавиши.
* Если операция POST является междоменной (назначением операции POST не является сервер, на котором содержится SWF-файл, отправляющий запрос POST), целевой сервер должен предоставить файл политик URL, в котором разрешен междоменный доступ.

Кроме того, все объекты multipart Content-Type должны иметь допустимый синтаксис (в соответствии со стандартами RFC2046). Если синтаксис является недопустимым, к операции POST применяются правила безопасности, действующие для отправок.

Дополнительные сведения о безопасности см. в следующих ресурсах.

* Раздел центра разработки Flash Player: Безопасность


В приложении Flash Player 10 и более поздней версии при использовании типа содержимого multipart (например, multipart/form-data), в котором содержится отправка (обозначена параметром filename в заголовке content-disposition в теле оператора POST), к операции POST применяются правила безопасности для отправок:

* Операция POST должна быть выполнена в ответ на действие, инициированное пользователем, такое как щелчок мыши или нажатие клавиши.
* Если операция POST является междоменной (назначением операции POST не является сервер, на котором содержится SWF-файл, отправляющий запрос POST), целевой сервер должен предоставить файл политик URL, в котором разрешен междоменный доступ.

DarkLight
11.12.2009, 21:44
Не прокатит, придется заставить юзера нажимать.

kackbip
11.12.2009, 21:57
Если шибко хочется то можно политику безопасности обойти :) Достаточно одного клика пользователя на флэшку чтобы далее сколько угодно раз инициировать небезопасные действия. :)

djtheme
11.12.2009, 22:16
Не прокатит, придется заставить юзера нажимать.

И даже JavaScript-ом не получица???

DarkLight
11.12.2009, 22:18
Достаточно одного клика пользователя на флэшку чтобы далее сколько угодно раз инициировать небезопасные действия.
Вы сами проверяли сказанное? Это не работает.

kackbip
11.12.2009, 22:18
Проверял и пользуюсь :)
Могу даже поделиться с вами КАК я это делаю :)
В общее достояние выкладывать не буду - во избежание так сказать...

iflamberg
11.12.2009, 22:46
я почитаю. в целях самосовершенествования. Пожалуйста-пожалуйста - в личку или на мыло iflamberg на gmail.com

bicubic_bublic
12.12.2009, 02:03
нельзя!

DarkLight
12.12.2009, 02:49
В общее достояние выкладывать не буду - во избежание так сказать...
Какие заморочки, я сам нашел, действительно работает. Сохраняем ссылку на событие настоящее и юзаем. Ну и фейл. Спасибо за информацию

kackbip
12.12.2009, 09:20
Да ошибся я... Нельзя :)

Dima107
27.04.2011, 17:26
Подскажите пожалуйста как это всё таки сделать?