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

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

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

Регистрация: Oct 2007
Сообщений: 18
По умолчанию Указатель мыши и Фигуры сложной формы

Есть картинка сложной формы, тоесть все что угодно: дерево, клякса, рой пчел.. все это росположено на прозрачном фоне. Надо отловить когда мышка находится именно на картинке.
Первое что приходит в голову смотреть BitmapData и оценивать цвет конкретного пикселя, если прозрачный(белый) то не оно, иначе - мы на фигуре.
Так вот, как добраться к этим самым пикселям ? Или может есть более простой способ решения ?

Старый 30.10.2007, 16:47
LokiDi L0ck вне форума Посмотреть профиль Отправить личное сообщение для LokiDi L0ck Найти все сообщения от LokiDi L0ck
  № 2  
Ответить с цитированием
LokiDi L0ck

Регистрация: Oct 2007
Сообщений: 53
Цитата:
Так вот, как добраться к этим самым пикселям
getPixel(), getPixel32()
__________________
Новичок

Старый 30.10.2007, 16:48
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 3  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Если это растровая графика, то так (смотри getPixel32), а если векторная графика то hitTest.

Старый 30.10.2007, 16:50
LokiDi L0ck вне форума Посмотреть профиль Отправить личное сообщение для LokiDi L0ck Найти все сообщения от LokiDi L0ck
  № 4  
Ответить с цитированием
LokiDi L0ck

Регистрация: Oct 2007
Сообщений: 53
Цитата:
Если это растровая графика
Цитата:
Первое что приходит в голову смотреть BitmapData
судя по всему растровая
__________________
Новичок

Старый 30.10.2007, 17:10
ТигрЪ вне форума Посмотреть профиль Отправить личное сообщение для ТигрЪ Найти все сообщения от ТигрЪ
  № 5  
Ответить с цитированием
ТигрЪ
 
Аватар для ТигрЪ

Регистрация: Oct 2007
Сообщений: 18
Спасибо с этим понял!
А вот как обратится к BitmapData которая лежит на главной timeline или хотябы к BitmapData с библитеки?
З.Ы. картинка добавлена не программно, а импортирована руками.

Старый 30.10.2007, 18:20
Snut вне форума Посмотреть профиль Отправить личное сообщение для Snut Посетить домашнюю страницу Snut Найти все сообщения от Snut
  № 6  
Ответить с цитированием
Snut
 
Аватар для Snut

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
линкуем файлиг в библиотеке и класс для него прописываем
__________________
Работаю

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
А в коде создаем экземпляр этого класса и имеем доступ ко всем нужным методам - getPixel, setPixel...и.т.д
__________________
freelance | Раздор

Старый 30.10.2007, 18:36
ТигрЪ вне форума Посмотреть профиль Отправить личное сообщение для ТигрЪ Найти все сообщения от ТигрЪ
  № 8  
Ответить с цитированием
ТигрЪ
 
Аватар для ТигрЪ

Регистрация: Oct 2007
Сообщений: 18
Отлинковал файлиг как класс img1 наследок от flash.display.BitmapData

сделал для него ас-класс:
Код:
package {
	import flash.display.BitmapData;
	
	public class img1 extends BitmapData{
		
		public function img1(){
		}
		
	}
}
орет: 1203: No default constructor found in base class flash.display:BitmapData.

Как правильно писать то надо?

Все! Нашел, всем огромное спасибо!

Еще вопрос возник. А как к этому экземпляру привязать обработчик MOUSE_MOVE ?

1061: Call to a possibly undefined method addEventListener through a reference with static type flash.display:BitmapData.

Я так понимаю, что к BitmapData привязать обработчик впринципе не возможно. Но хотелось бы именно к нему, потому как картинка будет масштабироваться под размеры окна браузера и хз как потом будет идти пересчет координат.


Последний раз редактировалось etc; 30.10.2007 в 19:06.
Старый 30.10.2007, 20:25
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 9  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
1. создай экземпляр класса Bitmap с твоей битмап датой
2. создай экземпляр класса Sprite
3. добавь спрайт на сцену, а битмап в спрайт.
спрайт будет слушать MOUSE_MOVE
__________________
freelance | Раздор

Старый 30.10.2007, 21:49
ТигрЪ вне форума Посмотреть профиль Отправить личное сообщение для ТигрЪ Найти все сообщения от ТигрЪ
  № 10  
Ответить с цитированием
ТигрЪ
 
Аватар для ТигрЪ

Регистрация: Oct 2007
Сообщений: 18
2 derhab
Так и сделал, все работает как надо. Спасибо!

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

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

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


 


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


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