![]() |
|
||||||||||
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Если кляксу может заметить и понять, что это клякса, только тот, кто её специально ищет, то это не клякса, а сэкономил время. Нет даже стандарта, про который можно сказать, что он нарушен!
У SimpleButton нет фич, без которых просто никак иногда, например состояние "disabled". Это осложняет жизнь использующему её. Неиспользование stage таких недостатков не имеет.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Вот класс для создания и удаления кнопок.
package { import flash.display.MovieClip; import flash.display.Stage; import flash.events.MouseEvent; public class Cbutton extends MovieClip { private var _bDown:Boolean=false; private var _oDownButon:Object=new Object ; public function Cbutton(But,x:int,y:int) { // constructor code onButtonCreate(But,x,y); } private function onButtonCreate(But,x:int,y:int):void { addChild(But); But.stop(); But.x=x; But.y=y; But.addEventListener(MouseEvent.MOUSE_OVER, onMouseEvent); But.addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent); But.addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent); } internal function onButtonDelete(But:MovieClip):void { But.removeEventListener(MouseEvent.MOUSE_OVER, onMouseEvent); But.removeEventListener(MouseEvent.MOUSE_OUT, onMouseEvent); But.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent); removeChild(But); } private function onMouseEvent(event:MouseEvent):void { switch (event.type) { case MouseEvent.MOUSE_OVER : if (_bDown&&_oDownButon==event.target) { _oDownButon.gotoAndStop(3); } else { event.target.gotoAndStop(2); } break; case MouseEvent.MOUSE_OUT : event.target.gotoAndStop(1); break; case MouseEvent.MOUSE_DOWN : stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent); _oDownButon=event.target; event.target.gotoAndStop(3); _bDown=true; break; case MouseEvent.MOUSE_UP : if (!(event.target is Stage)) { event.target.gotoAndStop(2); } stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEvent); _bDown=false; break; } } } } package { import flash.display.MovieClip; import flash.display.Sprite; public class CLButton extends MovieClip { private var sClip:Sprite=new Sprite ; private var _mcButton0:mcButton=new mcButton ; private var _mcButton1:mcButton1=new mcButton1 ; private var _mcButton2:mcButton=new mcButton ; private var _mcButton3:mcButton1=new mcButton1 ;; var _Cbutton0:Cbutton=new Cbutton(_mcButton0,0,0); var _Cbutton1:Cbutton=new Cbutton(_mcButton1,100,0); var _Cbutton2:Cbutton=new Cbutton(_mcButton2,100,100); var _Cbutton3:Cbutton=new Cbutton(_mcButton3,0,100); public function CLButton() { // constructor code addChild(sClip); sClip.x=100; sClip.y=100; _Cbutton0.buttonMode=true; sClip.addChild(_Cbutton0); sClip.addChild(_Cbutton1); sClip.addChild(_Cbutton2); sClip.addChild(_Cbutton3); _Cbutton0.onButtonDelete(_mcButton0); //_Cbutton1.onButtonDelete(_mcButton1); } } }
__________________
Книги и желание лучшие учителя. Последний раз редактировалось Vektor; 14.11.2011 в 09:46. |
|
|||||
|
только что рисовал кнопку потомок симплбаттона вот вам образец класса:
package core { import flash.display.*; import flash.events.Event; import flash.events.MouseEvent; import flash.text.*; import flash.filters.*; public class Moduli_menu_btn extends SimpleButton { private var btnlabel:String; private const color:uint = 0x6D8FB3; private const colorText:uint = 0xF7F7F7; private const btnWigth:Number = 190; private const btnHeight:Number = 35; private var myFilters:Array; public function Moduli_menu_btn(btnlabel:String) { this.width = btnWigth + 5; this.height = btnHeight + 5; this.btnlabel = btnlabel; this.upState = drawBtnUp (); this.overState = drawBtnOver (); this.downState = drawBtnOver (); this.hitTestState = drawBtnOver (); } private function btnTextField ():TextField { var t:TextFormat = new TextFormat ("Calibri", 20, colorText, true); t.align = TextFormatAlign.CENTER; var btntext:TextField = new TextField (); btntext.selectable = false; btntext.text = btnlabel; btntext.setTextFormat (t); btntext.y = 3; btntext.x = (btnWigth - btntext.width)/2; return btntext; } private function drawBtnUp ():Sprite { var bgUp:Sprite = new Sprite (); bgUp.graphics.lineStyle (2, color); bgUp.graphics.beginFill (color); bgUp.graphics.drawRoundRect (0, 0, btnWigth, btnHeight, 3, 3); bgUp.graphics.endFill (); var text:TextField = btnTextField (); bgUp.addChild (text); return bgUp; } private function drawBtnOver ():Sprite { var bgOver:Sprite = drawBtnUp (); myFilters = new Array(); //myFilters.push(new GlowFilter(0xDAE1E8, 3, 18, 18)); myFilters.push(new DropShadowFilter ()); bgOver.filters = myFilters; return bgOver; } } } Добавлено через 1 минуту Нету??? А свойство enabled не пойдет??? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Как оно может "пойти", если нельзя задать соответствующее отображение?
__________________
Reality.getBounds(this); |
|
|||||
|
А это другое дело, хотя я лично просто создаю функцию такого типа:
public function setIsChosen (chosen:Boolean):void { this._isChosen = chosen; if (this._isChosen) { this.upState = drawIsChosen (); this.overState = drawIsChosen (); this.downState = drawIsChosen (); this.hitTestState = drawIsChosen (); } else { this.upState = drawStateUp (); this.overState = drawStateOver (); this.downState = drawStateOver (); this.hitTestState = drawStateOver (); } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Vektor, это сообщение было написано в разделе для художников? Автор к художникам обращался?))
__________________
Reality.getBounds(this); |
|
|||||
|
А что вам мешает нарисовать картинку, экспортировать её в AS, создать её объект, и присвоить её нужному вам состоянию кнопки? Это к вопросу о рисовании. Так можно и анимированные состояния кнопок делать, присвоить каждому состоянию свой мувиклип и все.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|