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

alexorg2 24.02.2010 01:52

как вычислить нажатие кнопки
 
Имеется Simpleкнопка
Код AS3:

var button:SimpleButton = new SimpleButton();
                        button.x160;
                        button.y = 157;
                        var upStateButton:Sprite = new Sprite();
                        upStateButton.graphics.lineStyle(1, 0x3B6798);
                        upStateButton.graphics.beginFill(0x6D8FB3);
                        upStateButton.graphics.drawRect(0, 0, 134, 25);
                        upStateButton.graphics.endFill();
 
                        var downStateButton:Sprite = new Sprite();
                        downStateButton.graphics.lineStyle(1, 0x3B6798);
                        downStateButton.graphics.beginFill(0x51769E);
                        downStateButton.graphics.drawRect(0, 0, 134, 25);
                        downStateButton.graphics.endFill();
 
                        var overStateButton:Sprite = new Sprite();
                        overStateButton.graphics.lineStyle(1, 0x3B6798);
                        overStateButton.graphics.beginFill(0x84A1BF);
                        overStateButton.graphics.drawRect(0, 0, 134, 25);
                        overStateButton.graphics.endFill();
 
                        button.upState = upStateButton;
                        button.overState = overStateButton;
                        button.downState = downStateButton;
                        button.hitTestState = button.upState;

в таком виде кнопка безликая и ее следует подписать для чего создаем текстовое поле и помещаем его поверх кнопки
Код AS3:

var text4:TextField = new TextField();
text4.text = "Выбрать";
text4.selectable = false;
text4.autoSize = TextFieldAutoSize.LEFT;
text4.x = 160;
text4.y = 158;

и отображаем
Код AS3:

addChild(button);
addChild(text4);

Проблема в том что в таком виде текстовое поле перекрывает поле SimpleButton... А это значит когда указатель мыши находится над надписью, пропадает легкое подсвечивание кнопки... и я так чувствую будут проблемы с регистрацией слушателя события CLICK - его прийдется регистрировать и для надписи и для объекта SimpleButton...

Есть возможность как то проигнорировать то, что объект SimpleButton перекрывается текстовым полем???

ratin 24.02.2010 02:04

text4.mouseEnabled = false;

Добавлено через 2 минуты
О, да, и учитесь делать собственные _нормальные кнопки...

alexorg2 24.02.2010 02:13

Спасибо за ответ))

А насчет "учитесь делать кнопки" - так я и учусь... если есть вариант сделать кнопку другим способом - поделитесь... пока я знаю только этот:away:

ratin 24.02.2010 02:34

Ну раз пока знаете только этот, то им и пользуйтесь, не забивайте голову:)

Wolsh 24.02.2010 03:07

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


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

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