Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Timeline button (http://www.flasher.ru/forum/showthread.php?t=187332)

Nickolai 17.11.2012 21:13

Timeline button
 
У кнопки есть по идеи 4 состояния up over down hit. Как можно достучаться до каждого из них? Просто скажем если переменная равняется 4, то у кнопки button мы выбираем состояние hit, если переменная равняется 3, то down....

bav 18.11.2012 02:10

Напишите свой класс кнопки, который будет слушать события MouseEvent.ROLL_OVER, MouseEvent.ROLL_OUT, MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_UP. И куда можно будет добавлять различный контент. Так и получите доступ к состояниям кнопки.

Gaen 18.11.2012 03:23

Получить DisplayObject'ы с состояниями кнопки можно через ее свойства upState, overState, downState и hitTestState. Но при этом SimpleButton не позволяет программно устанавливать текущее состояние.
Для того, чтобы управлять состоянием кнопки программно, нужно, как сказал bav, написать свою реализацию кнопки на основе Sprite или MovieClip.

Nickolai 18.11.2012 15:46

пфф) Думал что будет совсем все просто. Куда мне писать свою реализацию кнопки?) Я же совсем не знаю ас) Можете хоть примерно подсказать как будет выглядить этот класс?

spirit2 18.11.2012 19:36

Что-то вроде:
Код AS3:

package {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.text.TextField;
 
        public class MyButton extends Sprite {
                private var _myText:TextField;
 
                public function MyButton(){
                        super();
                        this.buttonMode = true;
                        this.mouseChildren = false;
 
                        _myText = new TextField();
                        addChild(_myText);
                        _myText.text = "я кнопка"
 
                        addEventListener(MouseEvent.MOUSE_OVER, buttonMouseOver);
                        addEventListener(MouseEvent.MOUSE_OUT, buttonMouseOut);
                        addEventListener(MouseEvent.MOUSE_DOWN, buttonMouseDown);
                        addEventListener(MouseEvent.MOUSE_UP, buttonMouseUp);
                }
                private function buttonMouseOver(e:MouseEvent):void{
                        _myText.text = "я кнопка"
                }
                private function buttonMouseOut(e:MouseEvent):void{
                        _myText.text = "я кнопка и на мне мышь"
                }
                private function buttonMouseDown(e:MouseEvent):void{
                        _myText.text = "я кнопка и я нажата"
                }
                private function buttonMouseUp(e:MouseEvent):void{
                        _myText.text = "я кнопка"
                }
        }
}


Nickolai 18.11.2012 21:46

Мужики, ребята)! А скажите как удалить кнопку из символа? Есть символ Main как удалить из него кнопку button?

bav 19.11.2012 01:18

Код AS3:

var child:DisplayObject = Main.getChildByName("button");
if (child)
    Main.removeChild(child);


PainKiller 19.11.2012 12:23

Цитата:

У кнопки есть по идеи 4 состояния up over down hit. Как можно достучаться до каждого из них? Просто скажем если переменная равняется 4, то у кнопки button мы выбираем состояние hit, если переменная равняется 3, то down....
не знаю зачем тут писать отдельный класс кнопки, достучаться до любого состояния SimpleButton можно так:
Код AS3:

my_btn.upstate = ... //присваивайте что хотите
my_btn.overstate = ...


Nickolai 19.11.2012 21:17

И что туда можно приписывать?

IAmNotASpamer 20.11.2012 00:07

Спрайт, например?


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

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