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

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

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

Регистрация: Mar 2011
Сообщений: 35
По умолчанию Неадекватная область содержимого

Привет.

Заранее извиняюсь, если вопрос будет нубским. Курил мануалы и гугл, но не нашёл ничего, что бы мне помогло.

Создаю экземпляр спрайта. Очищаю. Рисую. Ловлю событие мыши. Итоговый размер спрайта получается гораздо больше, чем его визуальная часть. Это видно, если сделать его фон непрозрачным, ну и мышь, соответсно, ловится этой "лишней" областью.

Пруф:
[IMG]http://plasmon.**********/4987754.image[/IMG]

Вот ключевой код:

Код AS3:
			// это в конструкторе
			m_CaptionContainer = new Sprite();
			f_Redraw_Caption();
			...
			m_CaptionContainer.addEventListener(MouseEvent.MOUSE_MOVE, f_MouseOverCaption);
 
...
 
		protected function f_Redraw_Caption()
		{
			m_CaptionEntity.x = m_CaptionEntity.y = m_Margin - 2;
 
			var w:Number = 2 * m_Margin + m_CaptionEntity.textWidth;
			var h:Number = 2 * m_Margin + m_CaptionEntity.textHeight;
 
			m_CaptionContainer.graphics.clear();
			m_CaptionContainer.graphics.lineStyle(1, 0xFFFFFF);
			m_CaptionContainer.graphics.beginFill(0xFFFFFF, 0.35);
			m_CaptionContainer.graphics.drawRect(0, 0, w, h);
			m_CaptionContainer.graphics.endFill();
 
			m_CaptionContainer.opaqueBackground = 0xFF0000; // для дебага
		}
 
...
 
		// для дебага
		protected function f_MouseOverCaption(event:MouseEvent)
		{
			Popup.instance.text = String(event.target)
				+ "\n" + m_CaptionContainer.width + " * " + m_CaptionContainer.height;
			Popup.instance.x = x + width;
			Popup.instance.y = event.stageY;
		}
Среда разработки (вдруг это имеет значение): CS5.
За стилистику не пинайте, я всего три дня в AS3, а душу уже продал С++.

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

Теги
AS3 , graphics , Sprite , баг , содержимое
Опции темы
Опции просмотра

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

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


 


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


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