Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Определить цвет клипа на сцене/в библиотеке (http://www.flasher.ru/forum/showthread.php?t=99267)

danhuu 01.08.2007 12:42

Определить цвет клипа на сцене/в библиотеке
 
Возможно ли это? Все варианты, которые мне попадались, требуют рисовать/копировать BitmapData. А у меня ситуация такая: есть политическая карта, где каждая страна - клип, сделанный вручную (такую дали). Изначально все они окрашены в песочный цвет. При нажатии мышом на пункт легенды группа стран с одинаковым параметром (напр., население >10000000) должна окрашиваться в соотв. цвет. При вторичном нажатии песочный цвет должен восстановиться. Написал класс Area, где экземпляр, в частности, содержит ссылку на клип, изначальный цвет, текущий цвет и объект с данными по территории. Окрасить - не проблема, а для возвращения цвета пока приходится свойство initColor (изначальный цвет) вручную прописывать, определив на сцене пипеткой.
Извиняюсь, если неправильно определил раздел, возможно, это для начинающих.

etc 01.08.2007 12:50

Чем плох BitmapData? И разве дефолтный цвет меняется?

iNils 01.08.2007 12:56

setRGB и setTransform вполне подойдут

danhuu 01.08.2007 13:47

Цитата:

Сообщение от __etc
Чем плох BitmapData? И разве дефолтный цвет меняется?

BitmapData плох тем, что для всех стран (а их около 300) придётся из каждого мувика выдирать векторный Shape и превращать в BitmapData, чтобы с ним работать. И весить, подозреваю, будет это немало. Или я чего-то не так понял? Дефолтный цвет меняется, если, напр., дадут другую карту. Или сам из ArcGIS экспортирую в AI, Флэш, вроде его принимает. Хочется сделать боль-мень универсальный класс.
Цитата:

Сообщение от iNils
setRGB и setTransform вполне подойдут

Для определения цвета клипа?!!! Не надо так зло шутить.

iNils 01.08.2007 13:52

А зачем определять цвет клипа? Из первого поста следует, что все клипы изначально одного цвета (песочного). Когда тыкаем в клип, он меняет цвет исходя из условия легенды, тогда каким образом вам поможет определение цвета, когда они все одинаковы изначально? Значит у вас должен быть массив соответствия, такой-то клип, такой то значение. Либо я не так что-то понял, либо вы не верно изложили суть.

Wolsh 01.08.2007 14:02

Цитата:

Сообщение от danhuu
Для определения цвета клипа?!!! Не надо так зло шутить.

Интересно, а для чего же они по-вашему? setRGB - getRGB, setTransform - getTransform...
Да и зачем вам определять, если вы перекрасили по какому-то списку, то почему обратно перекрасить по нему же не можете?
Ну а с шейпами :) - сам клип разве не шейп?
Я думаю можно так делать - клип страны дублировать и располагать над страной, перекрашивать его с помощью сетРГБ в нужный цвет, можно подходящую альфу поставить, а когда не нужен - удалять и всё. Впрочем, с битмапдатой тоже самое, ведь клипы стран есть в библиотеке, значит можно делать с них скриншоты, их - в клипы - сетРГБ (ну или саму битмапину перекрасить) - свапДефт. Не нужна - удалили.
Это избавит вас от необходимости вручную "выдирать шейпы"

etc 01.08.2007 14:17

А что мешает просто сносить модификатор цвета, когда мышь убирают с клипа?

Wolsh 01.08.2007 22:21

Ну там не с клипа мышь убирают, там я так понял всякая статистика по странам-регионам показывается при нажатии на кнопки в специальном меню типа "численность населения" и "количество негров"... Но суть та же - как это можно просто удалить модификатор? Расскажи, в книжке такого не нашел?

iNils 01.08.2007 22:51

setTransform и поставить там дефолтные параметры.

danhuu 02.08.2007 12:28

Цитата:

Сообщение от iNils
А зачем определять цвет клипа? Из первого поста следует, что все клипы изначально одного цвета (песочного). Когда тыкаем в клип, он меняет цвет исходя из условия легенды, тогда каким образом вам поможет определение цвета, когда они все одинаковы изначально? Значит у вас должен быть массив соответствия, такой-то клип, такой то значение. Либо я не так что-то понял, либо вы не верно изложили суть.

Наверное, я нечётко выразился. В последующих проектах изначальный цвет может быть различным для разных стран.
Цитата:

Сообщение от __etc
А что мешает просто сносить модификатор цвета, когда мышь убирают с клипа?

Собственная тупость ;) Цвет меняю в общем виде так:
Код:

var colorTrans:ColorTransform = new ColorTransform();
colorTrans.rgb = some_color;
my_clip.transform.colorTransform = colorTrans;

Ergo, чтобы вернуть первоначальный цвет, можно сделать так?
Код:

my_clip.transform.colorTransform = null;
Если да, то это снимает проблему.


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

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