Форум 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)
-   -   Проблема с 2х позиционной кнопкой (http://www.flasher.ru/forum/showthread.php?t=83811)

AngelOrNot 16.08.2006 19:03

Проблема с 2х позиционной кнопкой
 
Не до конца понимаю, как сделать 2х позиционную кнопку(Pause/Play). Имея при этом 4 изображения - Два изображения для обычного состояния кнопок и два при наведении, изображения формата *.png. До этого применяла обычную стандартную кнопку и прописывала код
Код:

on (release) {
        if (_global.i == 1) {
                _root.stop();
                _global.i--;
        } else {
                if (_global.i == 0) {
                        _root.play();
                        _global.i++;
                }
        }
}

Но не меняла в ней надписи типа on/off, а сейчас хотелось бы сделать покрасивше. Подскажите, пожалуйста.

DarkLight 16.08.2006 19:13

Вместо кнопки - мувиклип.
При нажатии - переназначение обработчика события onRollOver, чтобы показывалась другая картинка, если надо - изменение текста подписи.

D12 16.08.2006 23:26

Этот код сделай для кнопки игра/пауза :

Код:

_root.zzz = 1;
_root.button.onPress = function() {
        _root.zzz = -_root.zzz;
};
_root.onEnterFrame = function() {
        if (_root.zzz == -1) {
                _root.button.gotoAndStop(2);
        }
        if (_root.zzz == 1) {
                _root.button.gotoAndStop(1);
        }
};



Этот код для кнопки навел/отвел :

Код:

_root.mc.stop();
_root.mc.onRollOut = function() {
        this.gotoAndStop(1);
};
_root.mc.onRollOver = function() {
        this.gotoAndStop(2);
};

или лутше так , забуть про onRollы :

Код:

_root.mc.onEnterFrame = function() {
        if (this.hitTest(_root._xmouse, _root._ymouse)) {
                this.gotoAndStop(2);
        }
        if (not this.hitTest(_root._xmouse, _root._ymouse)) {
                this.gotoAndStop(1);
        }
};


DarkLight 16.08.2006 23:52

2D12
Лучше все-таки первый вариант: хитТесты - это пустая трата вычислительных ресурсов, т к будет каждый кадр вызываться gotoAndStop, да и сам хитТест тоже вещь не самая быстрая

AngelOrNot 17.08.2006 18:03

Вложений: 1
Я попробовала сама добиться чего-то...в итоге получилось много кода, но работающая кнопка. Я наверное слишком замудрила, уровень моих знаний во флеше не позволил мне все это упростить
У меня две кнопки одна за другой с 3мя состояниями. названия -

btn_pause_disabled,btn_pause,btn_pause_over для кнопки "Пауза"

btn_play_disabled,btn_play,btn_play_over для кнопки "Играть"

Код:

btn_pause_disabled.onRollOver=function()
        {
        _root.btn_pause_disabled._visible=false;
        }

        btn_pause.onRollOut=function()
{
_root.btn_pause_disabled._visible=true;
}
btn_pause.onPress = function ()
{
_root.btn_pause._visible=false;
_root.stop();


btn_pause_over.onRollOut = function ()
{
_root.btn_pause._visible=false;
_root.btn_pause_over._visible=false;
_root.btn_play_disabled._visible=true;
}}

        btn_play_disabled.onRollOver=function()
        {
        _root.btn_play_disabled._visible=false;
        }

        btn_play.onRollOut=function()
{
_root.btn_play_disabled._visible=true;
}

btn_play.onPress = function ()
{
_root.btn_play._visible=false;
_root.play();
}

btn_play_over.onRollOut = function ()
{_root.btn_play._visible=true;
_root.btn_pause._visible=true;
_root.btn_pause_over._visible=true;
_root.btn_pause_disabled._visible=true;
}


D12 17.08.2006 21:46

Уважаемый DarkLight я никогда неусомнюсь что вы опытный програмист ,
но в данном вопросе вынужден с вами несогласится функции "onRoll" работают некоректно и очень плохо отлавливают события , соглашусь с вами что "хитТест" не идеальный вариант но и нетакой плохой что бы им пренебрегать в определенных ситуациях , я же предпочитаю математически задовать контур фигуры так я получаю самый желанный вариант .

DarkLight 17.08.2006 21:57

2D12
Я согласен, что onRoll не идеален, но здесь 1 кнопка, и проблемы врядли возникнут. Если несколько кнопок рядом повешены на онРоллы, и РоллАут и РоллОвер практически одновременны, то действительно одни проблемы.

А про математическое кодирование согласен на 100%

D12 17.08.2006 22:01

И со слезами на глазах , -Дай мне тебя обнять родной мой =)

P.S. Целую : )


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

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