Форум 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=98868)

PikseL 23.07.2007 19:27

Не работает скрипт кнопки вкл/выкл
 
Привет!
Уверен, что подобная задача решалась и не раз. И вопросы как сделать эту кнопку уже задавались, но мне почему-то не хочется пользоваться готовым. Хочу сам! :rolleyes: Почему корректно не работает:
Код:

var onOff:Boolean = true;
var sndTrack:Sound = new Sound();
sndTrack.attachSound("Music");
sndTrack.start();
_root.sndOn_btn._visible = 1;
_root.sndOff_btn._visible = 0;
sndOn_btn.onPress = function() {
        if (onOff) {
                _root.sndOn_btn._visible = 0;
                _root.sndOff_btn._visible = 1;
                sndTrack.stop("Music");
                onOff = false;
        } else {
                _root.sndOn_btn._visible = 1;
                _root.sndOff_btn._visible = 0;
                sndTrack.start();
                onOff = true;
        }
}

Понятно, что это кнопка вкл/выкл звук. Выключает хорошо :), а вот включать никак не хочет. У меня такое ощущение, что альтернативное условие функции просто не доступно. Подскажите почему или хотя бы как проверить.

PikseL 23.07.2007 19:32

Сначала думал, что это из-за того что переменная onOff false - поэтому условие попросту не проверяется, но ставил цифровые переменные - та же фигня. Причем, когда конкретно назначаешь условие false или true работает НУЖНАЯ ветка! Где-то я чего-то недопонял...:(

Cкептик 23.07.2007 21:04

Как вы собираетесь включать музыку по "несуществующей" на поле кнопке?

Код:

var mplay:Sound = new Sound();
mplay.attachSound('Sample');
mplay.start();
var spcheck:Boolean = true;
_root.btn_on._visible = true;
_root.btn_off._visible = false;
btn_on.onPress = function() {
        if (spcheck == true) {
                _root.btn_on._visible = false;
                _root.btn_off._visible = true;
                mplay.stop();
                spcheck = false;
        }
}
btn_off.onPress = function() {
        if (spcheck == false) {
                _root.btn_on._visible = true;
                _root.btn_off._visible = false;
                mplay.start();
                spcheck = true;
        }
}


Mr. Fixit 23.07.2007 23:44

теперь все ок

BARTLEBY 24.07.2007 00:07

хм.. ужасный код.. как я дума. зрительно получается кнопка как бы одна... вот код более правельный.
.......
делаем мувик в первом кадре рисуем кнопку ВКЛ во втором кадре рисуем кнопку ВЫКЛ в каждом кадре пишем Stop();
в кадре сцены пишем
Код:


var mplay:Sound = new Sound();
mplay.attachSound('Sample');
mplay.start();
var spcheck:Boolean = true;
btn.onPress = function(){
        if(!spcheck){
                mplay.stop();
                spcheck = true;
                this.gotoAndStop(1);
        }else{
                mplay.start();
                spcheck = false;
                this.gotoAndStop(2);
        }
}


BARTLEBY 24.07.2007 01:27

сори скрипт не проверял...
я допустил небольшую ошибку =)
вот рабочий код
Код:

var mplay:Sound = new Sound();
mplay.attachSound('Sample');
mplay.start();
var spcheck:Boolean = true;
btn.onPress = function(){
        if(spcheck){
                mplay.stop();
                spcheck = false;
                this.gotoAndStop(2);
        }else{
                spcheck = true;
                mplay.start();
                this.gotoAndStop(1);
        }
}


PikseL 24.07.2007 07:56

Ночью перед сном думал "что не так". Всё оказалось элементарно, как всегда! Действительно, ведь кнопка On становится невидимой. Пришел сёдня переставил. Заработало, правда, только когда оператор присваивания поменял на сравнение (спасибо, Cкептик!). Я же только начинаю осваивать AS, поэтому думаю и допускаю такие смешные ошибки.

2 BARTLEBY: спасибо, ваш код действительно изящнее. :) меня строго не судите.

Спасибо всем!


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

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