Просмотр полной версии : фиксация кнопок
есть три кнопки, нужно чтобы при нажатии одной - она фиксировалась, при нажатии другой все гасли, и фиксировалась нажатая. Вроде надо не кнопками ползоваться, а мувиками. Подскажите как, а то я не могу догнать... Пасиб! :)
Timerlan
16.01.2006, 19:19
делаешь три мувика по два кадра в каждом( не фиксированная кнопка и фиксированная), в первый фрейме каждого мувика поставь stop();
далее допустим ты их назвал как mc1, mc2, mc3
mc1.onRelease=function(){
mc1.gotoAndStop(2);}
mc2.onRelease=function(){
mc2.gotoAndStop(2);
mc1._visible=false;
mc3._visible=false;
}
Спасибо, а если их 100 то в каждой это прописывать??
и еще в догонку если по этому принципу сделать onRollOver и onRollOut, то фиксация проподает, а хотелось бы, чтобы этот мувик вел себя как кнопка, + фиксация :)
Жень Шень
16.01.2006, 19:59
Привет!
А так подойдет?
Если у них один родитель, я думаю самое просто это перебор.
Привет!
А так подойдет?
все классно, но как на ето еще присобачить RollOver и RollOut. к примеру, чтобы на RollOver в кнопке тоже мячик появлялся и соответственно на RollOut проподал, а при Release фиксировался... я этого добиться не могу
:confused:
Сударь, вы ленитесь.
Воспользуйтесь переменной-триггером.
Если радиокнопка включена, переменная равна 1: в обработчиках onRollOver, onRollOut проверяем переменную и в зависимости от её значения производим (или не производим) какие-то махинации.
Timerlan
16.01.2006, 21:56
ну сделай ты мувики не с 2мя кадрами, а со столькими сколько тебе нужно чтобы перебрать все свои возможные положения кнопки. Или пользуйся управляющими переменными, как посоветовал nyctota.
да я вот тригеррами и пробовал делать, но где-то ошибочка... подсажите где?
flag=0;
mc1.onRelease=function(){
col= new Color(mc1);
col.setRGB(0x000066);
flag=1;
}
mc1.onRollOver=function(){
if(flag == "0") {
col= new Color(mc1);
col.setRGB(0x000066);
}
}
mc1.onRollOut=function(){
if(flag == "0") {
col= new Color(mc1);
col.setRGB(0xff9900);
}
}
Используй тот код, что дал Жень Шень...
Далее не забудь, что переменная-триггер должна быть у каждой радиокнопки своя (ты же не хочешь их все сразу выключать?), типа this.flag
Ну, и ессесно, ты должен при включении одной кнопки выключать все остальные, т.е. обнулять их триггеры.
serzhman
17.01.2006, 12:54
А если так попробовать...
в принципе да, но если кнопок 100, то сложновато!!
попробовал так, но не выходит:
this[i].onRelease = function() {
for (j=1; j<=4; j++) {
this._parent[j].gotoAndStop(1+(this.n == j));
flagnew = "flag"+j;
this._parent[j].flagnew = (0+(this.n == j));
this._parent[j].col= new Color(this.n);
this._parent[j].col.setRGB(0xff9900);
trace(this._parent[j].flagnew);
}
};
this[i].onRollOver = function() {
for (j=1; j<=4; j++) {
flagnew = "flag"+j;
this._parent[j].flagnew = 0;
//trace(this._parent[j].flagnew);
if(this._parent[j].flagnew = 0) {
this._parent[j].col= new Color(this.n);
this._parent[j].col.setRGB(0xff9900);
} else {
this._parent[j].col= new Color(this.n);
this._parent[j].col.setRGB(0xff9900);
}
}
};
this[i].onRollOut = function() {
for (j=1; j<=4; j++) {
flagnew = "flag"+j;
this._parent[j].flagnew = 0;
if(this._parent[j].flagnew == 0) {
this._parent[j].col= new Color(this.n);
this._parent[j].col.setRGB(0x000066);
} else {
this._parent[j].col= new Color(this.n);
this._parent[j].col.setRGB(0xff9900);
}
}
};
}
Алгоритм.
1. Событие onRelease():
-- ВСЕ кнопки возвращаем в состояние "notRelease"
-- задаем ВСЕМ кнопкам триггер = 0;
-- текущую кнопку переводим в состояние "Release"
-- текущей кнопке задаем триггер = 1;
2. Событие onRollOver():
-- проверяем триггер текущей кнопки и, если он равен 1, текущую кнопку переводим в состояние "RollOver", в противном случае -- ничего не делаем;
2. Событие onRollOut():
-- проверяем триггер текущей кнопки и, если он равен 1, текущую кнопку переводим в состояние "RollOut", в противном случае -- ничего не делаем;
а можно по подробнее по привиденному листингу, а то я что-то не могу разобраться. спасибо!
Что тебе не понятно? Если всё, то, уж прости, на то есть книжки и хэлп, если что-то конкретное -- спрашивай.
Жень Шень
17.01.2006, 17:05
Привет!
ТАК?
Жень Шень
17.01.2006, 20:21
Да, поспешил - конец рабочего дня.
Вот исправленный вариант.
да, большое спасибо! это именно то что мне надо!!!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.