Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Нажатые кнопки (http://www.flasher.ru/forum/showthread.php?t=142212)

firuz 15.07.2010 15:43

Нажатые кнопки
 
Друзья, я когда-то спрашивал уже про запоминание нажатия на кнопку. Все было немного иначе. Спрошу еще раз.

Есть у меня такой вот класс для анимации кнопки
Код AS3:

package bin{
 
        import flash.display.*;
        import flash.events.*;
 
        public class button_a extends MovieClip {
 
                //public var a:int=0;
 
                public function button_a():void {
                        this.addEventListener(MouseEvent.ROLL_OVER, btn_playTo);
                        this.addEventListener(MouseEvent.ROLL_OUT, btn_playOut);
                        this.addEventListener(MouseEvent.CLICK, clickers);
                        this.buttonMode=true;
                        this.mouseChildren=false;
                }
 
 
                public function btn_playTo(event:MouseEvent):void {
 
                                this.gotoAndPlay('play1');
                                trace('navel');
 
 
                }
 
                public function btn_playOut(event:MouseEvent):void {
 
                        this.gotoAndPlay('play2');
                        trace('uvel');
 
 
 
                }
 
                public function clickers(e:MouseEvent):void {
                        //if (a==3)this.gotoAndStop('stop');
                        trace('click');
                        //a=a+1;
 
                }
 
        }
}

В библиотеке один клип кнопки, являющийся экземпляром этого класса.
На сцене 11 этих кнопок (детей ведь, так?). Каждой присвоен свой инстанс.
Выглядит так:
Навожу курсор на любую кнопку, кнопка красивенько переходит в состояние 2.
Увожу курсор и она обратно переходит в состояние 1.

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

Видимо, нужно создать переменную (в исходном файле, а может и в классе) в которой будет хранится какая именно кнопка нажата (какой из детей класса).
при нажатии ну другую кнопку выполнить следующие действия:
1. вызвать функицию закрытия кнопки для той, что находится в переменной
2. выгрузить из переменной
3. загрузить в переменную только что нажатую кнопку, приведя ее в состояние нажатия.


все делать видимо обычной логикой.


но пока не могу придумать как

Может поможет кто с кодом?

Хемуль 15.07.2010 17:12

2 firuz:
Цитата:

В библиотеке один клип кнопки, являющийся экземпляром этого класса.
Экземпляры на сцене, а не в библиотеке. В библиотеке у вас кнопка, связанная с классом-наследником от Base class'а.
Если по-простому, кнопки исходно ничего не знают друг о друге. Вам их нужно как-то "подружить" сперва. К примеру, сделать ещё один класс ButtonGroup какой-то, который бы и управлял состояниями кнопок.

firuz 15.07.2010 17:35

Цитата:

Сообщение от Хемуль (Сообщение 922575)
2 firuz:

Экземпляры на сцене, а не в библиотеке. В библиотеке у вас кнопка, связанная с классом-наследником от Base class'а.

Ну я как-бы это и имел в виду :) Но спасибо за правильную формулировку.

Цитата:

Сообщение от Хемуль (Сообщение 922575)
2 firuz:Если по-простому, кнопки исходно ничего не знают друг о друге. Вам их нужно как-то "подружить" сперва. К примеру, сделать ещё один класс ButtonGroup какой-то, который бы и управлял состояниями кнопок.

это интересная идея. но пока я не представляю как это осуществить :(


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

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