Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Узнать цвет под в мышкой в мувике (http://www.flasher.ru/forum/showthread.php?t=123501)

CEBEP 03.04.2009 18:15

Узнать цвет под в мышкой в мувике
 
Есть мувик в котором куча разноцветных шеип объектов.
Нужно узнать цвет кликнутого шеипа.

(я додумался до отрисовать этот мувик в новом битмапе и узнавать через getPixel, но если у меня эти шейпы будет анимированные, то как тогда?)

etc 03.04.2009 18:16

А что мешает при клике делать draw единственного пиксела в нужной точке и узнать цвет?

CEBEP 03.04.2009 18:20

Голодный желудок и завтрашняя запрлата :)
Спасибо, ступил :)

Jewelz 23.07.2009 15:31

а можно вопрос?

как именно сделать draw не всего stage (или Sprite) а именно нужного пикселя?
ведь в методе draw нужно задавать весь Sprite для отрисовки..
что очень долго если мне нужно это сделать не один раз..


я додумался только до такого способа... к примеру если надо определить пиксель под мышой

Код AS3:

var bd:BitmapData = new BitmapData(1,1);        
bd.draw(stage,new Matrix(1,0,0,1,-mouseX,-mouseY));               
 
var color:uint = bd.getPixel(0, 0);

то есть по сути рисуется только верхний левый пиксель, а точку где находится мышь пододвигаем в него

mre 23.07.2009 15:39

У метода draw есть параметр clipRect.

Jewelz 23.07.2009 15:43

clipRect только обрезает исходную картинку

ramshteks 23.07.2009 15:48

Цитата:

clipRect:Rectangle (default = null) — Объект Rectangle, определяющий для рисования область исходного объекта. Если это значение не задано, то обрезка не производится и исходный объект рисуется полностью.
Цитата:

clipRect только обрезает исходную картинку
а нам разве не это нужно?

Jewelz 23.07.2009 15:55

все верно, я именно с этим параметром и возился, до того как написать вопрос.. но у меня получалось следущее, поясню на картинках:

к примеру имеем красный фон у stage:
http://iscr.ru/photo/1248346351_1.jpg

если делем draw(stage,null,null,null,new Rectangle(50, 50, 100, 100));
то получается примерно такая штука:

http://iscr.ru/photo/1248346432_2.jpg

соответсвенно размер BitmapData если сделать (1,1) и отрисовывать stage то получим верхний левый пиксель (белый)

а нам надо отрисовать в BitmapData c размером (1,1) пиксель в любой точке а не только сверху слева.. вот в чем суть

iflamberg 23.07.2009 16:15

эм.. new Rectangle (tx,ty,1,1) не пробывали?

ramshteks 23.07.2009 16:19

поясню просто для Jewelz

первые два параметра это координаты левого верхнего угла, а вторая пара это ширина и высота.


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

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