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

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

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

Регистрация: May 2012
Сообщений: 38
По умолчанию Определить клик по объекту

Всем привет!
Собственно вот в чем вопрос. Есть embeded MoviClip, кадры которого представляют анимацию объекта - картинку на прозрачном фоне (ARGB=0x00FFFFFF); При клике на этом клипе нужно определить, попали ли мы в саму картинку или ее фон.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
getPixel32()

Старый 28.10.2012, 17:02
AleXXX вне форума Посмотреть профиль Отправить личное сообщение для AleXXX Найти все сообщения от AleXXX
  № 3  
Ответить с цитированием
AleXXX

Регистрация: May 2012
Сообщений: 38
а где у мувиклипа искать getPixel32()? Насколько я знаю он у Bitmapdata

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Зарисовываешь в битмап дату, а уж из нее берешь
__________________
Марк Tween

Старый 28.10.2012, 18:29
AleXXX вне форума Посмотреть профиль Отправить личное сообщение для AleXXX Найти все сообщения от AleXXX
  № 5  
Ответить с цитированием
AleXXX

Регистрация: May 2012
Сообщений: 38
Ребята, прошу конкретнее, желательно с примером. Я новичок, не совсем понимаю "зарисовываешь в битмапу". Еще рано мне по-фени объяснять

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
AleXXX
Почитайте про класс BitmapData, у него есть метод draw, в который можно передать любой дисплей обжект, тобишь: - "зарисовать муви клип в битмапу."
__________________
Дети не должны знать о своих родителях

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Можно вместо мувиклипа использовать класс InteractivePNG (сторонний)

Старый 29.10.2012, 00:40
flyberok вне форума Посмотреть профиль Отправить личное сообщение для flyberok Найти все сообщения от flyberok
  № 8  
Ответить с цитированием
flyberok

Регистрация: May 2010
Сообщений: 43
Код AS3:
private function click(e:MouseEvent){
				var mc:MovieClip=e.currentTarget;
				var bd:BitmapData=new BitmapData(mc.width,mc.height,true,0);
				bd.draw(mc); 
				trace(bd.getPixel32(e.localX,e.localY)); // покажет цвет в текущей точке
			}

Старый 29.10.2012, 12:24
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 9  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Сообщение от flyberok Посмотреть сообщение
Код AS3:
private function click(e:MouseEvent){
				var mc:MovieClip=e.currentTarget;
				var bd:BitmapData=new BitmapData(mc.width,mc.height,true,0);
				bd.draw(mc); 
				trace(bd.getPixel32(e.localX,e.localY)); // покажет цвет в текущей точке
			}
Рисовать весь объект не нужно.
Достаточно отрисовать 1(один) пиксель:
Код AS3:
var object:DisplayObject = e.currentTarget;
var matrix:Matrix = new Matrix();
matrix.tx = -object.mouseX;
matrix.ty = -object.mouseY;
var bd:BitmapData = new BitmapData(1, 1, true, 0);
bd.draw(object, matrix);
trace(bd.getPixel32(0, 0)); // покажет цвет в текущей точке

Старый 29.10.2012, 13:18
flyberok вне форума Посмотреть профиль Отправить личное сообщение для flyberok Найти все сообщения от flyberok
  № 10  
Ответить с цитированием
flyberok

Регистрация: May 2010
Сообщений: 43
Цитата:
Сообщение от expl Посмотреть сообщение
Рисовать весь объект не нужно.
Достаточно отрисовать 1(один) пиксель:
Точно! а то если таким методом MOUSE_MOVE отработать, то немного нерационально получится.

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

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

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


 


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


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