PDA

Просмотр полной версии : про кнопку


Kirilld
05.09.2005, 17:21
Подскажите пожалуйста, как можно сделать, чтобы при нажатии на кнопку один раз происходило действие, а при нажатии на нее второй раз это действие отменялось. Например:нажимаю на кнопку появляется некая картинка(этого я добился с помощью _visible), нажимаю второй раз-картинка пропадает.

PSHOLTY
05.09.2005, 17:38
объект.визибле = нот (объект.визибле);

Kirilld
05.09.2005, 17:45
Я просто не очень понял: вот код, который я использую для появления картинки:
on(press){
with(object){
_visible=1;
}
}

PSHOLTY
05.09.2005, 18:08
on(press){
with(object){
_visible=! _visible;
}
}

Kirilld
05.09.2005, 18:14
спасибо огромное! тогда еще один вопросик: нажимаю один раз-картинка, нажимаю второй раз-прежняя картинка не исчезает, а появляется еще одна картинка.

Бармалей
05.09.2005, 19:19
надо делать проверку на видимость:
on(press){
with(object){
if(_visible==1){
_visible=0;
}else if(_visible==0){
_visible=1;
}
}
}

PSHOLTY
05.09.2005, 20:49
спасибо огромное! тогда еще один вопросик: нажимаю один раз-картинка, нажимаю второй раз-прежняя картинка не исчезает, а появляется еще одна картинка.
не понял...

тогда попробуй вообще по наглому

on(press){
with(object){
! _visible;
}
}


это на столько нагло, что может и не работать ;)

Kirilld
06.09.2005, 10:21
нет, эти картинки 2 разных объекта, с появлением и исчезновением все понятно, попробовал-все работает, просто мне еще нужно, чтобы кнопка отвечала за 2 объекта. нажимаешь один раз появился объект, нажимаешь еще раз появляется второй объект. может поможет кто-нибудь?

Double
06.09.2005, 10:33
обзови картинки mc1, mc2 и т.д.
on(press){
_root["mc"+i]._visible = false;
i++;
_root["mc"+i]._visible = true;
}
и гоняй картинки, пока не надоест. если добавить проверку по макс значению i, то его можно своевременно обнулить ;)

Kirilld
06.09.2005, 10:52
я что-то попробовал, получается так, нажимаешь 1 раз появляется картинка, а 2 раз нажимаешь появляется вторая картинка, но первая исчезает, а нужно, чтобы она не исчезала.

Kirilld
06.09.2005, 11:00
спасибо, большое! я сам допер как это сделать, правда с твоей подсказкой:)

Kirilld
06.09.2005, 12:18
созрел новый вопрос: все с той же кнопкой, как сделать чтобы при нажатии один раз появлялась картинка и в текстовом поле цифирки, а при повторном нажатии картинка исчезала(это все работает) и исчезали цифирки?

Double
06.09.2005, 12:23
myTextField.text = "";

Kirilld
06.09.2005, 12:33
а поподробнее, просто у меня с текстом следующие действия:
on(press){
startDrag(_root.q);
}
on(release){
stopDrag();
_root.var1=1;
}

Double
06.09.2005, 12:45
ты по-человечески объясни что ты хочешь сделать и что не получается.

Kirilld
06.09.2005, 13:00
посмотри примерно что я хочу, это типа что-то каталога, один раз нажал выбрал продукт, второй раз нажал отменил выбор, нужно, чтобы вместе с отменой выбора пропадала и цена

Double
06.09.2005, 13:09
on(release){
stopDrag();
_root.var1=1.5;
if (qwer._visible) {
_root.var2=+_root.var1;
} else {
_root.var2 = "";
};
}

так чтоли?

Kirilld
06.09.2005, 14:04
так то оно так, только когда в каталоге много товаров, он не суммирует, а пишет в поле только цену одного товара!

Kirilld
06.09.2005, 15:18
может кто-нибудь поможет и в этом разобраться?

Kirilld
06.09.2005, 16:17
очень нужно разобраться!

Бармалей
06.09.2005, 17:31
тут не выкрутиться без преобразования типов данных. Дело в том, что свойством "text" у textField является строка, а строки при суммировании дают: "2"+"2" --> "22".
Преобразовать строку в число просто "2"-0 дает число 2.
Поэтому, делай так:
myTextField.text = totalS;//это будет отображаться в текстовом поле
var cena = 1.5;//цена
//***
on(release){
stopDrag();
temp
if (qwer._visible) {
_parent.totalS = ((_parent.totalS-0)+_parent.cena)+"";
} else {
_parent.totalS = ((_parent.totalS-0)-_parent.cena)+""; };
}
Если не будет работать, поменяй _parent на _root

Kirilld
06.09.2005, 17:38
спасибо большое, я правда вроде как сам выкрутился вот таким образом:
on (press){
with(table_ws){
_visible=!_visible;
}
startDrag(_root.q);
}
on (release) {
stopDrag();
_root.accum1=1.30;
if(table_ws._visible){
_root.register+=_root.accum1;
} else{
_root.register=_root.register-_root.accum1;
};
}
Вроде как все пока работает, но все равно спасибо за помощь!