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

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

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

Регистрация: Mar 2011
Адрес: Минск
Сообщений: 11
Question MouseEvent и Alpha в Bitmap

Можно ли заставить корректно работать События мыши с расторовой альфой?

Суть в том что Флеш игнорирует наличие альфы у картинок. И к примеру если есть спрайт содержащий картинку кольца, а позади него ещё какой-то спрайт, как раз внутри этого кольца. То выходит так что мы видим этот задний спрайт но клики, которые казалось бы по нему, срабатывают по верхнему спрайту(кольцу). Отключить маусэвенты у верхнего спрайта - не вариант.
Также хочется сохранить правильную цепочку передачи события(по всем контейнерам)..

Я нагуглил и нашёл несколько способов:
1) сторонняя "библиотека" InteractivePNG http://blog.mosessupposes.com/?p=40 - в примере работает достаточно хорошо, но я не любитель сторонних библиотек и классов, ввиду чёрного ящика.
2) создать векторную альфу для изображения и засунуть её в маску - работает идеально, но есть такие минусы как: лишняя работа по созданию масок, лишний спрайт для маски - да и вообще вектор штука медленная.
3) Использовать getObjectsUnderPoint - получить список всех обьектов, проверить альфы и найти требуемый. - но как в таком случае правильно возбудить событие чтобы оно пошло по всей цепочки контейнеров?

Возможно кто знает ещё какой-то способ, как бы так отделаться малой кровью?

Старый 10.11.2011, 00:05
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
но я не любитель сторонних библиотек и классов, ввиду чёрного ящика.
В чем там черный ящик? Там открытый исходный код, можно все посмотреть и подправить при необходимости.
В InteractivePNG есть один косяк с уничтожением созданной битмапы. Я для себя малость подправил этот класс, и теперь все уничтожается полностью. Плюс, раз уж не хочется использовать сторонние библиотеки, то почему бы просто не подсмотреть там решение? Там используются только стандартные методы.

Старый 10.11.2011, 01:32
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Я для себя малость подправил этот класс, и теперь все уничтожается полностью.
А осветить это решение и послать автору?
__________________
Отряд Котовскага

Старый 10.11.2011, 01:34
kodo вне форума Посмотреть профиль Отправить личное сообщение для kodo Найти все сообщения от kodo
  № 4  
Ответить с цитированием
kodo

Регистрация: Mar 2011
Адрес: Минск
Сообщений: 11
Всё верно говорите, надо поковырять этот ящик и будет уже не чёрный.
лень просто такая штука, и надежда: а вдруг пропустил что-то тривиальное...

Старый 10.11.2011, 01:48
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
kodo, ну напишите свою реализацию. Будет лучше, начнут использовать вашу. Если вы и дальше будете избегать сторонних библиотек, то сильно увеличите сроки разработки.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 10.11.2011, 08:57
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от Котяра Посмотреть сообщение
А осветить это решение и послать автору?
за меня уже ответили в этой теме
Цитата:
лень просто такая штука
)
Короче говоря мне просто в лом =)

Старый 10.11.2011, 11:16
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 7  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Вариант использовать свойство Sprite#hitArea.
http://www.flasher.ru/forum/showthread.php?t=149820 - там примерчик.

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

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

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


 


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


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