Просмотр полной версии : Помогите разобраться с getRGB
Снова ламерский вопрос любителя...
Ситуация следующая: Есть ролик. Пользователь с помощью менюшки аттачит из библиотеки на сцену клипы.
Клипы аттачатся внутрь контейнеров, помещенных на сцену вручную.
Затем он как ему нужно меняет их размеры, положение прозрачность и цвет.
Потом он это сохраняет, (SharedObject) чтоб при следующей загрузке ролика всё само приаттачилось и установилось на свои места с сохраненными размерами, прозрачностью, цветом...
Всё это более менее коряво я сделал.
Сохраняются координаты, размеры, прозрачность, есть или нет объект на сцене, но вот с сохранением цвета я конкретно уперся...
Читал хэлпы, пользовал поиск по форуму, но так и не нашел ответа на свой вопрос:
Как получить информацию о цвете контейнеров, для последующего сохранения её в SharedObject, и присвоения того же цвета при следующей загрузке ролика?
Желтенькая кнопочка призвана вывести в трэйс информацию о цвете, так, как описано в хелпе...
Но получаю я всегда undefined...
Очень важно! Версия плеера не может быть выше 6
Прилагаю исходник.
Клипы на сцену аттачатся нажатием надписей CLIP1 и CLIP2 в менюшке
Не пинайте сильно за корявый код. Я правда любитель...
Странно.. Написали такой код, использовали getRGB как положено, применительно к объекту Color. Почему вдруг в ответственный момент Вы спрашиваете getRGB у объекта MovieClip? Нет у него такого метода. Потому и undefined. А цвет надо просто сохранять в свойстве контейнера каждый раз при изменении - когда делаете Color.setRGB - ну и сохраните этот ргб в персональном свойстве контейнера/мувика.
Сохраняй значения ползунков управляющие цветом :)
KiL33, объектов -то много, сколько пользователь натаскает/наизменяет.
Пусть они сами и помнят свой цвет. Завести им свойство .rgb и записывать туда текущее значение, а при сохранении его и считывать.
Кстати, неплохо бы и ползунки сделать реагирующими на реальный цвет "выделенного" объекта. А то цвет каждый раз слетает, становясь таким как зафиксировано в ползунках)).
Wolsh, спасибо, попробую.
Я в принципе, когда писал сообщение, то подумал что наверно надо не у клипа спрашивать...
Кстати, пробовал спрашивать у переменной my_color тоже безрезультатно..
Ну не могу я сообразить у кого спросить...
Спросил у Вас :)
А по поводу ползунков... Эх, неплохо было бы если б при щелчке по объекту они ставились как положено... Но я и это то еле осилил... Хотя, если я всёже осилю с Вашей задачу с цветом, то в принципе думаю, что потом из цвета, посчитать координаты ползунка, задача для меня гораздо более простая...
KiL33
Если б объект был один, я бы именно так и сделал, сохранил бы значения ползунков, и всё.
Но Wolsh прав. Объектов то много...
UPD
Болше часа пытаюсь по книжкам понять как
Завести им свойство .rgb
Или я не понял, и речь шла о чем то другом? Как завести свойство клипу?
Ну ОК, вот так измените этот кусок и уже будет цвет, цвет выделенного объекта)))
Надо только начальный цвет тоже задать - вдруг юзера цвет устроит и он не будет двигать движки - undefined))
///////////////////////////////////////////////Container Colour
onMouseMove = function () {
var my_color:Color = new Color(changeobject);
menubar.sliderset.rslider.change = function(par:Number):Void {
var old_color:Number = my_color.getRGB() & 0x00FFFF;
var r_c:Number = par << 16;
var new_color:Number = old_color | r_c;
my_color.setRGB(new_color);
changeobject._rgb = new_color;
};
menubar.sliderset.gslider.change = function(par:Number):Void {
var old_color:Number = my_color.getRGB() & 0xFF00FF;
var g_c:Number = par << 8;
var new_color:Number = old_color | g_c;
my_color.setRGB(new_color);
changeobject._rgb = new_color;
};
menubar.sliderset.bslider.change = function(par:Number):Void {
var old_color:Number = my_color.getRGB() & 0xFFFF00;
var b_c:Number = par;
var new_color:Number = old_color | b_c;
my_color.setRGB(new_color);
changeobject._rgb = new_color;
};
};
test.onPress = function() {
var myValue:String = changeobject._rgb.toString(16);
while(myValue.length<6) myValue = "0"+myValue;
// trace the color value
trace(myValue);
}
Ок. Спасибо.
К сожалению навертывается винт, и сейчас чуток не до флэша, бросился спасать всё, что нажито непосильным трудом :) Извините что не по теме.
Завтра постараюсь разобраться в примере.
И если не разберусь, снова побеспокою.
Уж не обессудьте :)
PS
Всё понял ровно через 5 сек, после нажатия кнопки "отправить быстрый ответ" :)
НО! ни в одной книжке, я не видел, чтоб было написано, что кроме стандартных свойств клипа, ему можно точно также, легким движением руки, назначить пользовательское свойство! Может я не те книжки читаю? :(
olexandr
25.02.2009, 02:07
экземпляру любого динамического класса можно назначать пользовательское свойство "легким движением руки"
MovieClip в AS2 динамический )
Ага, gfdrf (http://flasher.ru/forum/member.php?u=34854), что тогда по-вашему menubar.sliderset.rslider.change? Это всё - стандартные свойства класса МувиКлип? =)))
Удачки.
Ага, теперь то я конечно понимаю, ЧТО это...
Ну а так, делал, не до конца понимая ЧТО это и что я делаю.
Делал потому что знал, что это работает по аналогии скажем с путем к мувику-кнопке, когда они вложен ещё в три клипа в глубину... пишем к нему путь через все его обертки, и всё работает...
Ну а тут я бы сказал, что я считал это как бы переменной... И соответственно путем к ней.
Ребята, вам книжки писать надо! Однозначно! Нормально, по человечески растолковали всё... За что и огромное Вам спасибо!
А в книжках, то забыли, то перепутали, то упомянули вскользь... Вот у Гурского вчера вычитал типа " setRGB применяется очень редко, так как закрашивает клипы одним цветом..." и соответственно уделено ему там 5 строчек. Абсолютно почти то же самое что и в хелпе...
Ну неправильно это по моему.
Есть setRGB, значит надо рассмотреть его всесторонне, как и getRGB, чтоб до конца всё понятно было. Используется редко, но вот мне в самый раз. А почитать толком негде...
Извините за лирику :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.