PDA

Просмотр полной версии : цвет клипа...


Crash512
17.06.2008, 22:26
Подскажите пожалуйста!

Задача такая: у меня грузится в мувике swf-файл, в нём, соответственно другой мувик, состоящий из частей типа "shape_1","shape_2" и тд...

Короче говоря, к ним можно будет обратиться типа my_clip.shape_1... Эти самые шейпы представляют собой объекты одного цвета. Из них складывается картинка. И вот, мне нужно узнать цвет какого-нить из my_clip.shape_*... Как это сделать?.. Насколько я читал, вроде как только через битмап можно...

MrPoma
17.06.2008, 22:37
В Вашем случае скорее всего только через битмап.

Crash512
17.06.2008, 23:03
А как?

iNils
17.06.2008, 23:14
http://www.flasher.ru/forum/showthread.php?t=112715

Crash512
17.06.2008, 23:27
Я читал эту тему, там немного другая задача...

iNils
17.06.2008, 23:33
Я читал эту тему, там немного другая задача...Суть та же, нельзя узнать цвет объекта без BitmapData, если вы не применяли к нему Color.setRGB

Crash512
17.06.2008, 23:47
Ладно... Конкретный вопрос! Как прифигачить в экземпляр битмапа мой "my_clip.shape_1"???

iNils
17.06.2008, 23:53
http://www.flasher.ru/forum/showpost.php?p=744025&postcount=5
Только вместо _root написать my_clip.shape_1

Crash512
17.06.2008, 23:59
Э-э-э...
import flash.display.BitmapData;

var bitmap:BitmapData = new BitmapData(Stage.width, Stage.height);
bitmap.draw(mc.shape_1);
var color:Number = bitmap.getPixel(1,1);
trace(color);

Выдаёт "16777215".. Что никак ярко красному не соответствует...

iNils
18.06.2008, 00:09
Выдаёт "16777215".. Что никак ярко красному не соответствует...И что вы от меня хотите? Код верный, косяк где-то у вас в исходнике, который я не вижу.

Crash512
18.06.2008, 00:10
Нормально, разобрался.. Спасибо...

Только теперь появился новый вопрос=)) Ща сформулирую...

вообщем, я сделал так:

bitmap.getPixel(mc.shape_1._width/2,mc.shape_1._height/2)

И он, соответственно, считал пиксель с центра клипа. А если фигура неправильная/нестандартная?.. Допустим, там в центре будет дырка?.. Как пиксель адекватный выбрать?

iNils
18.06.2008, 00:40
Crash512, надо использовать кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, а не создавать несколько сообщений подряд.

Crash512
18.06.2008, 00:45
извиняюсь... а что по поводу фигуры?

iNils
18.06.2008, 00:51
А если фигура неправильная/нестандартная?.. Допустим, там в центре будет дырка?.. Как пиксель адекватный выбрать?А если заливка градиентная? :D
Флеш "умный" на столько, на сколько умный программист. Создайте для каждого клипа свойтво, в котором будет хранить цвет клипа.

Crash512
18.06.2008, 01:01
Я создавал... При подгрузке они не считываются... Допустим, в исходнике картинки я делал так:

shape_1.color = "0xffffff"

Когда я гружу эту SWF-ку в другой ролик, эта переменная не читается...:(

iNils
18.06.2008, 01:29
Загрузки дождались или сразу после loadMovie пытаетсь прочитать?

Crash512
18.06.2008, 03:31
Я использовал MovieClipLoader и его событие "onLoadComplete"...

За намёк спасибо... Добавил в onLoalComplete функцию onEnterFrame, которая дожидается, чтобы нужная переменная не была "undefined"... Работает, но метод какой-то топорный=) Как это сделать по-уму?

iNils
18.06.2008, 04:18
Я использовал MovieClipLoader и его событие "onLoadComplete"...А надо onLoadInit
И по поводу мультипостинга я предупреждал.