![]() |
как поменять цвет кнопки програмно
Такая проблема:
хочу сделать кнопку, которая будет менять цвет при нажатии, тоесть не посещенные кнопки - один цвет, посещенные кнопки - другой, при этом незасовывая в мувик, а просто делаеш один символ кнопки и вешаеш на копии разные URL, и есстественно сам код по замене цвета |
Запихивай в мувик. Так надежнее. А так как кнопка - это тот же мувик только с зашитыми системными функциями, то смысла нет путать все дело ИМХО.
|
Ха!
Цитата:
А вот ответ: Вставь это на первый кадр мувика! k = 4; kx = 100; ky = 20; links=new Array("0xff0000", "0x00ff00", "0x0000ff"); //links[0] - link //links[1] - alink //links[2] - vlink for (i=0; i<k; i++) { mc = _root.createEmptyMovieClip("button"+i, i); mc._x += (kx+20)*i; mc.beginFill(0xffffff, 100); mc.lineTo(0, ky); mc.lineTo(kx, 0); mc.moveTo(kx, ky); mc.lineTo(0, ky); mc.lineTo(kx, 0); mc.endFill(); _root["button"+i].c = new Color(["button"+i]); //Íàçûâàòü ïåðåìåííóþ ñ - color íåëüçÿ! _root["button"+i].c.setRGB(links[0]); mc.onPress = function() { _root.lastactivelink.c.setRGB(links[2]); this.c.setRGB(links[1]); _root.lastactivelink=this; }; } Если ты мне расскажешь, как пользоваться beginGradientFill, я буду очень рад и благодарен!!! |
Как пользоваться beginGradientFill даже не имею представления!!! А за код спасибо! Хотя я еще не пробовал применить его и несовсем понимаю! Это мувик, правильно? Просто вытащить его из библиотеки и поменять только URL без дублирования нельзя, правильно я все понимаю????
|
Хреновый скрипт.
Дюже большой. Кроме того спрашивали про кнопку, а ты мувик тулишь. Надо просто на onRealise /кнопку отпустили, значит уже по ней сходили/ повесить newColor. И ВСЁ! |
На кнопку kn1 вешаем
on (release) { tt=new Color(kn1); tt.setRGB(0xff00ff); } И ВСЁ! :D Правда по проще будет? |
Цитата:
То, что он просил это всё понятно, просто объяснять что, к какому мувику приладить - мне влом!!! А тут всё понятно! А если ты можешь сократить этот скрипт и ещё и объяснить что к чему - я буду очень рад! |
Не нужны здесь никакие мувики /о чём с самого начала и говорилось/ - это как винтом гвозди забивать. :D
|
Код простой, но у меня не работает в том виде который тут написан, может чтото нужно изменить?? Что такое kn1 ?
Объясни как он работает! Если не влом ;) А так, спасибо за отклик! |
Я уже и сам разобрался:
kn1 - индивидуальное имя кнопки (Instance). Спасибо, все пашет, без шума и пыли!!! |
Тут только вопрос назрел сам собой:
а можна чтобы кроме цвета еще и мувик заменялся, тоесть кнопка не посещенная одна, а посещенная другая????? Но тоже не прибегая к мувику а просто код на кнопке... |
2 robotech
И зачем тебе такие извращения? :rolleyes: Ну так уж и быть. Самому наверное сложно догадаться. Вариантов масса. Например: Рисуешь вторую кнопку, делаешь _visible = false, enabled = false. При нажатии меняешь на true. Уж извини, расписывать я не буду. Подумай головой. ;) |
Это я знаю, спасибо за совет...
|
Люди!!! может кто знает где можно таблицу индексных цветов найти под тип 0xff00ff?
|
2 SKIFAXEL:
Цитата:
|
2 BlooDHounD
спасибо, но прикол в том что данный код не прокатывает для tt.setRGB(0x993366); тут работает что то типа 0xRRGGBB только вот с какого края к этому подступиться я не пойму. каждый цвет в ргб использует 3.х значное число, то что я пытаюсь внести туда теряет смысл. может кто знает как найти правельный цвет? |
это и есть 0xRRGGBB? только оно выглядит #RRGGBB!
|
Это то самое и это катит. Формат 0x000000 представляет собой шестнадцатеричное число, то есть например в десятичной эргебе 204.204.153, а в шеснадцатеричной - сссс99 или 0xCCCC99 или #CCCC99. А хаунд тебе прислал таблицу этих соответствий. (а вообще-то такие вещи в уме считать надо)
|
Правельно!
|
из положения выкрутился другой функцией
myColor = new Color(www); myColorTransform = new Object(); myColorTransform = {ra:'50', rb:'200', ga:'40', gb:'181', ba:'12', bb:'151', aa:'40', ab:'70'}; myColor.setTransform(myColorTransform); а как пользоваться теми цветами так и не нашел, так тоже пробовал, фигня какаято выходит. светлоту отрегулировать не удается, синий лезет, если есть желание сами попробуйте. |
уф, глупый какой.
А ты вообще знаешь, что такое система счисления? |
неа не заю
|
Хаунд, слышишь, а мы тут распинаемся...
http://tmn.fio.ru/works/52x/306/r2.htm ^ | Вот тут очень просто. Для школьноков. Тебе, SKIFAXEL, читать обязательно! А может ты прикалываешься? $) |
Тяжолый случай!
В повседневной жизни мы используем деситичную систему исчесления (DEC), кроме которой существует множество других систем необходимых человеку в жизни: * BIN - двоичная * OCT - восьмиричная * HEX - шестнадцатиричная и другие. Ниже приведина таблица, которая показывает элементы некоторых систем исчесления: BIN | 0 1 DEC | 0 1 2 3 4 5 6 7 8 9 HEX | 0 1 2 3 4 5 6 7 8 9 A B C D E F Пример: преобрезование числа из одной системы исчисления в другую: 12 = 1100 = C DEC BIN HEX И в цветах: DEC: R=35 G=139 B=165 HEX: R=23 G=8B B=A5, или #238BA5 А вот так 0x238BA5 пердаётся HEX-число в языках програмирывания (например C, Delphi), работая, например, с адресами памяти. |
Не успел! Dindin, не даёшь в учителя поиграть!
|
|
Цитата:
|
2Dindin
статью прочитал, не могу суазать что я об этом не слышал или не имел понятия, но все равно спасибо. 2BlooDHounD большое спасибо, пролил свет, теперь принцип понял, знаю что искать. еще раз всем спасибо, удачи. |
beginGradientFill
О beginGradientFill - beginGradientFill(<тип>, <цвета>, <прозрачности>, <площади>, <преобразования>)
первый параметр - "linear"/"radial" второй параметр - массив цветов (мин. два цвета) третий - массив прозрачностей для цветов четвертый - массив площадей, занимаемых цветами. Вся площадь объекта - 255. пятый параметр - экземпляр Object - а, в котором есть свойства {matrixType:"box"/*всегда box, кажется*/, x: абсцисса левого верхнего угла заливки, y:ордината -//-, w:ширина заливки, h:высота, r:угол поворота в радианах}. Например myObj = {matrixType:"box", x:50, y:50, w:150, h:150, r:180*Math.Pi}; Пятый параметр может быть и другого вида - в виде матрицы, но лень писать... Много.... Заинтересуетесь, напишу, только кому это надо... |
Re: beginGradientFill
Цитата:
|
Клуб любителей Хэлпа,
предлагает всем прекратить заниматься хернёй. :p |
Ну раз надо так надо:) Значит, последний параметр может быть сложного типа - в виде матрицы. Вот так
a b c d e f g h i Вот так и задаешь этот параметр, например {a:150, b:0,c:0,d:0,e:150,f:0,g:200,h:200,i:0} a и e, это, кажется, высота и ширина, g вроде бы коррдината y а h - x. Короче, поэксперементируй.... Я до конца не разобрался с этой левой матрицей. Вот пример использования beginGradientFill _root.onLoad= function() { clear(); lineStyle(2, random(0xFFFFFF)); moveTo(100, 100); beginGradientFill("radial", [random(0xFFFFFF), random(0xFFFFFF), random(0xFFFFFF), random(0xFFFFFF)], [100, 100, 100, 100], [50, 100, 150, 255], {matrixType:"box", x:75, y:50, w:200, h:200, r:0}); //beginGradientFill("linear", [0xFF0000, 0x00FF00, 0x0000FF, 0x000000], [100, 100, 100, 100], [50, 100, 150, 255], {a:200, b:0, c:0, d:200, e:200, f:0, g:250, h:200, i:0}); lineTo(250, 100); lineTo(250, 200); lineTo(100, 200); lineTo(100, 100); endFill; }; _root.onMouseDown=_root.onLoad; |
Как говорится: НАЧАЛИ ЗА ЗДРАВИЕ, КОНЧИЛИ ЗА УПОКОЙ...
|
| Часовой пояс GMT +4, время: 17:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.