PDA

Просмотр полной версии : ComboBox и Color


kili
14.03.2007, 22:14
Привет всем. Моя задача хотя не сложная но выхода не вижу.
Два символа MoveClip и один ComboBox. Мне нужно сделать так чтоб при выбыре первый строки менял цвет первый символ, а при выборе второй второй символ(при этом чтоб первый символ стал тким же как раньше).
Посылаю код, может кто поможет. Я не могу усделить тут алгоритм

import mx.controls.ComboBox;
k1Color=new Color(_root.k1);
k2Color=new Color(_root.k2);
this.createClassObject(ComboBox,"com_cb",20);
com_cb._x=5;
com_cb._y=250;
var com_cb:ComboBox=this['com_cb'];
var list:Object={};
list.change=function(event:Object):Void
{
if (com_cb.selectedItem.label)
{
k1Color.setRGB(0xCCFF00);

}
else
{
k1Color.setRGB(0x000000);
}

};

{
if (com_cb.selectedItem.label)
{
k2Color.setRGB(0xCCFF00);
}
else
{
k2Color.setRGB(0x000000);
}

};
com_cb.addItem({label:""});
com_cb.addItem({label:"k1"});
com_cb.addItem({label:"k2"});
com_cb.addEventListener("change",kuc);

etc
14.03.2007, 22:15
Оформите свой код тегами .

kili
14.03.2007, 22:19
В теоре я тоже это понимаю. А вот при практике это все отказывается работать.Хотелась бы по подробней, please....

iNils
14.03.2007, 22:24
Повторное предупреждение: оформите свой код тегами (это около вашего сообщения начйти кнопку "изменить" и нажать ее), иначе тема будет закрыта, а вы получите плюс.

silin
15.03.2007, 00:00
алгоритм простой: ставим для выбранного один цвет, для остальных другой:
import mx.controls.ComboBox;
var com_cb:ComboBox = createClassObject(ComboBox, "com_cb", 20);
com_cb.move(5,250);
com_cb.addItem({label:""});
com_cb.addItem({label:"k1",data:new Color(k1)});
com_cb.addItem({label:"k2",data:new Color(k2)});
com_cb.addEventListener("change", cbChange);
function cbChange(){
var dp=com_cb.dataProvider;
for(var i in dp){
var clr=(i==com_cb.selectedIndex) ? 0xCCFF00 : 0x000000;
dp[i].data.setRGB(clr)
}
}