Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   про кнопку (http://www.flasher.ru/forum/showthread.php?t=68783)

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

Цитата:

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

не понял...

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

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

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

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;
};
}
Вроде как все пока работает, но все равно спасибо за помощь!


Часовой пояс GMT +4, время: 18:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.