PDA

Просмотр полной версии : comboBox и button - ф-я срабатывает на второй раз


Mattie
13.11.2006, 19:15
Здравствуйте,

у меня на сцене

1) мувиклипы, которые должны изменять цвет (A и B)

2) комбо бокс (ничего не выбрано; выбрано A, data = A; выбрано B, data = B),

3) три кнопочки - цветные прямоугольники (белый, синий, красный),

Задача: если пользователь в комбо боксе выбрал А, затем нажал на кнопочку "белый" - мувиклип А должен стать белым. если затем он нажал на "синий" - мувиклип А должен стать синим.

т.е. пользователь, нажимая на кнопки может менять цвет у того муви клипа, который в данный момент выбран в комбо боксе.

вот такой код в первом кадре в корне:


var listenerObject:Object = new Object();
listenerObject.change = function(eventObject:Object) {
_root.selectedIs = colour.selectedItem.data;
};
// colour - это instance для комбо бокса
colour.addEventListener("change", listenerObject);


вот такой код повешен на кнопку "красный"


on (release) {
trace(_root.selectedIs);

if (_root.selectedIs == 'А')
{
my_color.setRGB(0xFF0000);
var my_color = new Color(_root.sec);
}

if (_root.selectedIs == 'В)
{
my_color.setRGB(0xFF0000);
var my_color = new Color(_root.min);
}
}


вот при таком раскладе trace, который в кнопочке срабатывает всегда и сразу, показывает то, что действительно выбрано в комбо боксе, но при этом ни А, ни В не изменяют свой цвет, а изменяют они его только при повторном нажатии на кнопочку, причем trace при повторном нажатии также четко срабатывает.

почему функция изменения цвета срабатывает только при повторном нажатии? ведь она в той же функции, что и trace?!?!

Mattie
13.11.2006, 20:58
починил, вот как надо было писать:


on (release) {
switch (_root.selectedIs) {
case "sec" :
trace('second was selected');
_root.cvet = 0xFF0000;
var my_color = new Color(_root.sec);
my_color.setRGB(_root.cvet);

break;
case "min" :
trace('minute was selected');
_root.cvet = 0xFF0000;
var my_color = new Color(_root.min);
my_color.setRGB(_root.cvet);
break;
default :
trace("you didn't choose item which will change it's colour");
break;
}


всем спасибо :)