Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.11.2010, 13:44
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 1  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
По умолчанию Непонятки с mouseEnabled - все равно приходит событие.

Привет. Или я чего-то недопонял или это фича флэша. Ситуация такая - подписываюсь на роллАут --> мышь находится над объектом --> вызывается mouseEnabled = false --> событие роллАут срабатывает.

Код AS3:
mc.addEventListener(MouseEvent.ROLL_OUT, test);
function test(event:MouseEvent):void
{
	trace(mc.mouseEnabled);
}
setTimeout(function():void{mc.mouseEnabled = false}, 1000);
Я больше склоняюсь к тому что это баг, но может кто-то развеет мои сомнения.

Старый 11.11.2010, 14:12
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Странно. У меня вот такой код:
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.utils.setTimeout;
 
	/**
	 * @author bav
	 */
	public class Main extends Sprite 
	{
		private var mc:MovieClip;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(event:Event = null):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			mc = new MovieClip();
			mc.graphics.beginFill(0x0000FF);
			mc.graphics.drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 300);
			mc.graphics.endFill();
			mc.addEventListener(MouseEvent.ROLL_OUT, test);
 
			addChild(mc);
			setTimeout(function():void { mc.mouseEnabled = false; trace("done"); }, 1000);
		}
 
		private function test(event:MouseEvent):void
		{
			trace(mc.mouseEnabled);
		}
	}
}
работает так, как и ожидается. Т.е. mc.mouseEnabled = false; не диспачит события MouseEvent.ROLL_OUT.

Старый 11.11.2010, 14:23
Lecosson вне форума Посмотреть профиль Отправить личное сообщение для Lecosson Найти все сообщения от Lecosson
  № 3  
Ответить с цитированием
Lecosson

Регистрация: Apr 2008
Сообщений: 80
Записей в блоге: 3
Вы, наверное, имели ввиду, что события срабатывает даже с mouseenabled=flase
У вашего MC случайно "деток" нету? Попробуйте mouseChildren=false.

Старый 11.11.2010, 14:26
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Хех, странно. У меня все по прежнему - даже с твоим кодом.

Lecosson, нет - у моего MC нет вложенных клипов.


Последний раз редактировалось Волгоградец; 11.11.2010 в 14:29.
Старый 11.11.2010, 14:28
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 5  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Какой ФП и СДК у вас, Волгоградец, и у вас, bav?
__________________
тут я

Старый 11.11.2010, 14:29
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 6  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Если mc пустой, то работает как надо
Если в нем лежат другие объекты, то происходит тоже что и у Волгоградца
Такая конструкция решила вроде проблему
Код AS3:
mc.addEventListener(MouseEvent.ROLL_OUT, test);
function test(event:MouseEvent):void
{
	trace(mc.mouseEnabled);
}
setTimeout(function():void{mc.mouseEnabled = false; mc.mouseChildren = false}, 1000);
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 11.11.2010, 14:33
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 7  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
FD - FlashDevelop 3.2.2 RTM for Microsoft.NET 2.0 Runtime
SDK - 4.1

Старый 11.11.2010, 14:34
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Компилировал и в ЦС4 и с помощью СДК 4.1. Плеер последний.

mouseChildren роли не играет, т.к. детей нет. С вложенными клипами и с установленными mc.mouseEnabled = false и mc.mouseChildren = false фича воспроизводится.

Старый 11.11.2010, 14:37
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 9  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Странно, может, опять происки АДОБА? Хотя, СДК-то один...
__________________
тут я

Старый 11.11.2010, 14:39
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 10  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Нашел в джире:
https://bugs.adobe.com/jira/browse/FP-5597
Так что останавливаемся на том - что это баг.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.