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

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

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

Регистрация: Jan 2007
Сообщений: 368
По умолчанию Как избавиться от прозрачного фона картинки?

Подскажите пожалуйста, загружаю swf в нем только png картинка с прозрачным фоном, несколько таких флэшек загружаю в один контейнер.
Затем нужно обработать MOUSE_DOWN для каждого из клипов, но есть проблема обработчик назначается на весь квадрат клипа, а не только на часть с графикой. И получается что клип который ниже по уровню даже если и находится за прозрачной частью более высокого клипа не получает события down.
Как это можно побороть?
Название: Снимок.JPG
Просмотров: 486

Размер: 17.1 Кб
Код AS3:
var _picture:Loader = new Loader();
_picture.contentLoaderInfo.addEventListener(Event.INIT, onLoadMebel);
addChild(_picture);
_picture.load(new URLRequest(Params.server_url + "graf/mebel/" + _pic));
//затем
public function onLoadMebel(e:Event)
{
_picture.addEventListener(MouseEvent.MOUSE_DOWN, onDown, false, 0, true);
e.target.content.removeEventListener(Event.INIT, onLoadMebel);
}

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
InteractivePNG
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.06.2011, 12:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
http://blog.mosessupposes.com/?p=40

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

Регистрация: Dec 2005
Сообщений: 219
Отправить сообщение для _sestra_ с помощью ICQ Отправить сообщение для _sestra_ с помощью Skype™
По сути, при наведении нужно просто проверить альфу пикселя под мышкой:

Код AS3:
cont.addEventListener(MouseEvent.MOUSE_MOVE, check);
function check (event:MouseEvent):void
{
	if (bmp.bitmapData.getPixel32(bmp.mouseX, bmp.mouseY))
		trace('MOUSE_OVER');
	else
		trace('MOUSE_OUT');
}
// где
// cont = DisplayObject
// bmp = Bitmap лежащий в cont
__________________
Счастье - это хорошее здоровье и плохая память

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от _sestra_ Посмотреть сообщение
// где
// cont = DisplayObject
// bmp = Bitmap лежащий в cont
в таком случае забыли добавить, что в библиотеке картинке нужно прописать класс расширяющий BitmapData, иначе флэш интерпретирует ее как шейп
__________________
freelance | Раздор

Старый 15.06.2011, 22:47
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 6  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Цитата:
Сообщение от derhab Посмотреть сообщение
в таком случае забыли добавить, что в библиотеке картинке нужно прописать класс расширяющий BitmapData, иначе флэш интерпретирует ее как шейп
В данном случае, написано "Bitmap" это не может означать, что я подразумевал "Shape". К слову, там много подобных нюансов.

//от _sestra_

Старый 15.06.2011, 23:22
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
X-No-Archive: yes

Речь шла о BitmapData, а не о том как его интерпретирует Flash IDE.

/*
ot brat [x]
*/
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
я исходил из конкретной ситуации
у нас загружается свфка с пнг картинкой на сцене, надо работать с этим объектом
если ее просто доставать через getChildAt, то в трейсе будет [object Shape]
но если прописать этой пнг картинке в библиотеке класс, то будет уже [object Bitmap] и тогда можно будет работать с битмапдатой
__________________
freelance | Раздор

Старый 16.06.2011, 09:55
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
derhab, безусловно, да. Один вопрос. Одна тема.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 16.06.2011, 10:26
Dragon rideR вне форума Посмотреть профиль Отправить личное сообщение для Dragon rideR Найти все сообщения от Dragon rideR
  № 10  
Ответить с цитированием
Dragon rideR
 
Аватар для Dragon rideR

Регистрация: Jan 2007
Сообщений: 368
Спасибо большое всем, разобрался!
Вот как я сделал:
1. расширил мой класс от InteractivePNG
2. в область видимости добавляю не весь Loader, а только картинку из подгружаемого клипа
Код AS3:
public function onLoadMebel(e:Event)
		{
			addChild(e.target.content.getChildAt(0));
		}
и все заработало как нужно )

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

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

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


 


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


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