|
|
|||||
Регистрация: Aug 2007
Сообщений: 168
|
Задачка с SimpleButton
Здравтсвуйте. Такое дело:
Есть класс StickButton, который расширяет SimpleButton, этот класс указан в качестве базового для нескольких кнопок в библиотеке. Он позволяет кнопке "залипать", если нужно, но сейчас не об этом. Еще в классе есть обработчики на MOUSE_OVER, MOUSE_DOWN, MOUSE_OUT и MOUSE_UP, что они делают можно понять по коду, так вот, мне нужно чтобы эти самые обработчики регистрировались только если у кнопки задан только upState и больше никаких, тоесть если в кнопке на сцене более одного кадра, то обработчики не добавляются. Вот код: package { import flash.display.DisplayObject; import flash.display.SimpleButton; import flash.events.MouseEvent; import flash.filters.BevelFilter; public class StickButton extends SimpleButton { private var old_state:DisplayObject; private var old_x:Number; private var old_y:Number; private var _sticked:Boolean = false; private var bevel:BevelFilter = new BevelFilter(3, 90, 0xFFFFFF, 0.75, 0x000000, 0.75, 5, 5, 0.5, 3); public function StickButton() { this.addEventListener(MouseEvent.MOUSE_OVER, whenMouseOver); this.addEventListener(MouseEvent.MOUSE_OUT, whenMouseOut); this.addEventListener(MouseEvent.MOUSE_DOWN, whenMouseDown); this.addEventListener(MouseEvent.MOUSE_UP, whenMouseUp); } private function whenMouseUp(e:MouseEvent):void { this.x = old_x; this.y = old_y; } private function whenMouseDown(e:MouseEvent):void { old_x = this.x; old_y = this.y; this.x += 1; this.y += 1; } private function whenMouseOut(e:MouseEvent):void { this.filters = []; } private function whenMouseOver(e:MouseEvent):void { this.filters = [bevel]; } public function stick():void { old_state = this.upState; this.upState = this.overState; _sticked = true; } public function unStick():void { this.upState = this.old_state; _sticked = false; } public function get sticked():Boolean { return _sticked; } } } Последний раз редактировалось AlliAS; 21.03.2010 в 14:59. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
А зачем вам наследоваться от SimpleButton? Наследуйтесь от спрайта и всё будет хорошо.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 08:05. |
|
« Предыдущая тема | Следующая тема » |
|
|