Flash: как временно отключить или заблокировать все события мыши для SWF с внешней загрузкой - PullRequest
3 голосов
/ 14 июля 2009

У меня есть SWF-файлы, которые я загружаю во флэш-фильм, и в этих SWF-файлах иногда возникают события мыши, которые могут мешать диалогам и кнопкам в моем флэш-фильме. Я хотел бы временно отключить загруженные обработчики событий мыши SWF-файлов или запретить им какое-либо влияние на мой флэш-фильм. Мой флэш-фильм AS 2.

Ответы [ 4 ]

5 голосов
/ 14 июля 2009

Распространенным решением этой проблемы в ActionScript 2 является то, что часто называют «блокирующим» клипом. Просто создайте мувиклип, который состоит из полностью прозрачной заливки. Затем вы можете поместить этот видеоклип в любое удобное для вас место и при необходимости изменить его размер. Наконец, вы назначаете этому клипу фиктивное событие мыши и отключаете его использование курсора руки, например:

blocker.onRelease = function() {};
blocker.useHandCursor = false;

Пока этот клип находится над загруженным контентом, он будет поглощать любые события мыши.

0 голосов
/ 29 января 2011

Вы также можете использовать переменную и проверять, изменяется ли состояние '0' при каждом вызове функции clickEvent.

var lockScreen: int = 0;

Установите lockScreen = 1, если хотите игнорировать события щелчка и установите нулевое значение после выполнения чего-либо. По крайней мере, у меня это работает :) 1008 *

0 голосов
/ 21 января 2010

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

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

0 голосов
/ 14 июля 2009

Создайте свой обработчик событий в тот момент, когда он действительно необходим, например, когда кнопка или объект попадают в кадр.

Если щелчки мышью слушателя событий уже созданы, вы можете в любой момент удалить слушателя в ActionScript.

myButton.removeEventListener (MouseEvent.CLICK, handleMouseClick);

А затем используйте функцию или связанную логику, чтобы позже включить обработчик событий мыши

myButton.addEventListener (MouseEvent.CLICK, handleMouseClick);

«handleMouseClick» - это действительная функция и код, который что-то делает с помощью щелчка мыши

Другое решение состоит в том, чтобы установить некоторый глобальный логический флаг в вашем ActionScript на основной временной шкале, а затем внутри функций, которые обрабатывают функциональность мыши, вы можете сначала проверить на логическое значение, прежде чем делать что-либо. Событие мыши все равно будет создано и передано в ваш обработчик событий, но может быть выборочно проигнорировано в зависимости от состояния вашего логического флага.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...