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

Salut 13.10.2006 22:50

...Проблема с кнопкой...
 
Здравствуйте!
Ситуация такая: есть 3 кнопки,надо сделать так, чтобы принажатии на одну кнопку, возле нее начинался проигрываться мувик(допустим до 10 кадра, а потом останавливался(этоя знаю как сделать)), но если нажать на другую кнопку, анимация для той кнопки которая уже была нажата, проигрывается до конца и одновременно с этим начинается такая же анимация для той кнопки которую мы нажали после......... :o

вообщем как сделать проверку release'a для всех кнопок...

надеюсь не очень вас запутал...

Заранее спасибо!

wvxvw 13.10.2006 23:27

ну... раз в кнопке есть какая-то анимация, то надо полагать, что она инстанс мувиклипа. Тогда просто написать в онрелизе кнопок:
Код:

[другая кнопка №1].stop();
[другая кнопка №2].stop();


Salut 13.10.2006 23:46

нет, анимация не в кнопке, а в отдельном мувике....

ладно объясню по другому...

есть три кнопки, принажатии на любую кнопку возле нее плавно появляется квадрат, принажатии на другую кнопку этот квадрат по-тихоньку исчезает, а возле той последней нажатой кнопки он наоборот появляется... вот... и так с каждой кнопкой на какую бы ты ни нажал...

wvxvw 14.10.2006 03:29

а что в этом плохого? ну... это можно подать как смелый дизайнерский ход... ну проигрывается, и пусть себе проигрывается... =)

D12 14.10.2006 04:10

Вложений: 1
Код:

_root.goBtn = 0;
//контроль какая кнопка нажата .
_root.kontrol = 1;
//переменная которая контролирует что следует выполнять изчезание или появление.
_root.mc._alpha = 0;
//начальная яркость равна нулю.
//
this.btn1.onPress = function() {
        _root.goBtn = 1;
};
this.btn2.onPress = function() {
        _root.goBtn = 2;
};
this.btn3.onPress = function() {
        _root.goBtn = 3;
};
////
_root.onEnterFrame = function() {
        if (_root.goBtn == 1) {
                if (_root.kontrol == 1) {
                        _root.mc._alpha -= 5;
                        if (_root.mc._alpha<=0) {
                                _root.kontrol = -_root.kontrol;
                        }
                }
                if (_root.kontrol == -1) {
                        _root.mc._x = 100;//координаты по оси икс для первой кнопки
                        if (_root.mc._alpha<100) {
                                _root.mc._alpha += 5;
                        }
                        if (_root.mc._alpha>=100) {
                                _root.goBtn = 0;
                                _root.kontrol = -_root.kontrol;
                        }
                }
        }
        /// 
        if (_root.goBtn == 2) {
                if (_root.kontrol == 1) {
                        _root.mc._alpha -= 5;
                        if (_root.mc._alpha<=0) {
                                _root.kontrol = -_root.kontrol;
                        }
                }
                if (_root.kontrol == -1) {
                        _root.mc._x = 200;//координаты по оси икс для второй кнопки
                        if (_root.mc._alpha<100) {
                                _root.mc._alpha += 5;
                        }
                        if (_root.mc._alpha>=100) {
                                _root.goBtn = 0;
                                _root.kontrol = -_root.kontrol;
                        }
                }
        }
        ///
        if (_root.goBtn == 3) {
                if (_root.kontrol == 1) {
                        _root.mc._alpha -= 5;
                        if (_root.mc._alpha<=0) {
                                _root.kontrol = -_root.kontrol;
                        }
                }
                if (_root.kontrol == -1) {
                        _root.mc._x = 300;//координаты по оси икс для третьей кнопки
                        if (_root.mc._alpha<100) {
                                _root.mc._alpha += 5;
                        }
                        if (_root.mc._alpha>=100) {
                                _root.goBtn = 0;
                                _root.kontrol = -_root.kontrol;
                        }
                }
        }
};

посмотри изходник может подойдет =)

P.S. правда глюки немного есть , вообще иду спать попробую завтра поправить : )

wvxvw 14.10.2006 06:18

А... до меня наконц дошло =) это сделать нужно чтобы квадратики мигали рядом с кнопкой? а я думал, нужно от этого избавиться %)

2 D12:
Как раз тут в соседнем топе обсуждалось =) как бы это дать новичку решение позамысловатее =) (не то, чтобы я сам против, но все-тки =)
Зачем это так делать, когда есть всего-то 3 несчастные кнопки? Слишком много наворотов =)
Код:

var _btns:Array = [];
for (i=0; i<3; i++) {
        var _l1:MovieClip = _root.attachMovie("btn", "btn"+i, _root.getNextHighestDepth(), {_x:50, _y:10+i*110, _i:i});
        _btns.push(_l1);
        _l1._txt.text = "Button"+i;
        _l1.onRelease = function() {
                this.attachMovie("fader", "fader_mc", this.getNextHighestDepth(), {_x:100, _alpha:0});
                for (ii=0; ii<_root._btns.length; ii++) {
                        if (this != _root._btns[ii]) {
                                _root._btns[ii].onEnterFrame = function() {
                                        this.fader_mc._alpha--;
                                        if (this.fader_mc._alpha<=0) {
                                                delete this.onEnterFrame;
                                                this.fader_mc.removeMovieClip();
                                        }
                                };
                        } else {
                                _root._btns[ii].onEnterFrame = function() {
                                        this.fader_mc._alpha++;
                                        if (this.fader_mc._alpha>=100) {
                                                delete this.onEnterFrame;
                                        }
                                };
                        }
                }
        };
}

Вложение 15467

wvxvw 14.10.2006 07:10

Или, если кнопки должны выплнять разеые действия, можно и так:
=)
Код:

var dispatcher:Number = 4;
for (i=0; i<3; i++) {
        var _l1:MovieClip = _root.attachMovie("btn", "btn"+i, _root.getNextHighestDepth(), {_x:50, _y:10+i*110, _i:i});
        _btns.push(_l1);
        _l1._txt.text = "Button"+i;
        var _l2:MovieClip = _root.attachMovie("fader", "fader"+i+"_mc", _root.getNextHighestDepth(), {_x:150, _y:10+i*110, _alpha:1});
        _l1.onRelease = function() {
                _root.dispatcher = this._i;
        };
}
_root.onEnterFrame = function() {
        switch (_root.dispatcher) {
        case 0 :
                _root.fader0_mc._alpha<=100?_root.fader0_mc._alpha+=5:_root.fader0_mc._alpha=100;
                _root.fader1_mc._alpha>=0?_root.fader1_mc._alpha-=5:_root.fader1_mc._alpha=0;
                _root.fader2_mc._alpha>=0?_root.fader2_mc._alpha-=5:_root.fader2_mc._alpha=0;
                break;
        case 1 :
                _root.fader1_mc._alpha<=100?_root.fader1_mc._alpha+=5:_root.fader1_mc._alpha=100;
                _root.fader0_mc._alpha>=0?_root.fader0_mc._alpha-=5:_root.fader0_mc._alpha=0;
                _root.fader2_mc._alpha>=0?_root.fader2_mc._alpha-=5:_root.fader2_mc._alpha=0;
                break;
        case 2 :
                _root.fader2_mc._alpha<=100?_root.fader2_mc._alpha+=5:_root.fader2_mc._alpha=100;
                _root.fader1_mc._alpha>=0?_root.fader1_mc._alpha-=5:_root.fader1_mc._alpha=0;
                _root.fader0_mc._alpha>=0?_root.fader0_mc._alpha-=5:_root.fader0_mc._alpha=0;
                break;
        default :
                trace("hit the button, u *beep*!");
                break;
        }
};

Вложение 15468
PS. А как вы делаете эти замечательные рамочки вокруг аттачментов? %)
PPS. Но в первом случае флешка меньше немного получается, хотя, я думаю, что если в этой всю ерунду поудалять, то будет одинаково =)

Хемуль 14.10.2006 10:01

2 wvxvw:
Рамочки вроде сам форум ставит когда прикрепление делаешь. ^_^


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

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