|
|
|||||
Переходим из фрэймов в классы.
Здравствуйте люди добрые!=)
Очень жажду начать программировать в отдельных .as файлах, но все боюсь начать. Осознаю преимущества программирования классами - это и сокращение кода, и динамичность, и лаконичность, и более быстрая работа... Посему прошу провести со мной маленький урок, что займет у вас несколько минут а полезен будет, думаю, многим новичкам) допустим у нас есть простой код-обработчик кнопок, написанный в 1-м фрэйме, а в библиотеке лежат две кнопки: StartGameButton и HelpButton. var rooter = stage; var startButt:MovieClip = new StartGameButton(); addChild(startButt); startButt.x = 50; startButt.y = 350; startButt.enable = true; var helpButt:MovieClip = new HelpButton(); addChild(helpButt); helpButt.x = 500; helpButt.y = 350; helpButt.enable = true; _ButEvent(startButt); _ButEvent(helpButt); function _ButEvent(mc) { if(mc.enable) { mc.useHandCursor = true; mc.buttonMode = true; mc.addEventListener(MouseEvent.MOUSE_DOWN, butHandlerDOWN) function butHandlerDOWN(e:Event):void { e.target.gotoAndStop(2) rooter.addEventListener(MouseEvent.MOUSE_UP, butHandlerUP) } function butHandlerUP(e:Event):void { mc.gotoAndStop(1) rooter.removeEventListener(MouseEvent.MOUSE_UP, butHandlerUP) _butHandlerCLICK(mc); } } else { mc.gotoAndStop(3) trace('button disable') }//end if(mc.enable) } function _butHandlerCLICK(target) { switch (target) { case startButt: { trace(m) break; } case helpButt: { trace(m) break; } } //end switch } и функции _butHandlerCLICK , которая проверяет, какая кнопка была нажата и выполняет действия. так вот вопрос. Приведите пожалуйста на этом коде пример, как разделить его на, допустим, три .as файла - main, ButEvent и butHandlerCLICK ? |
|
|||||
Modus ponens
|
Из вашего кода не понятно каким образом кнопки могут поменять состояние enabled / disabled. А так, ну вот, наверное...
package tests { //{ imports import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.utils.Dictionary; //} /** * ButtonsExample class. * @author wvxvw * @langVersion 3.0 * @playerVersion 10.0.32 */ public class ButtonsExample extends Sprite { //-------------------------------------------------------------------------- // // Protected properties // //-------------------------------------------------------------------------- protected var _buttons:Dictionary = new Dictionary(); //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- public function ButtonsExample() { super(); var startButt:MovieClip = new StartGameButton(); super.addChild(startButt); startButt.x = 50; startButt.y = 350; this._buttons[startButt] = true; startButt.addEventListener(MouseEvent.MOUSE_DOWN, this.mouseUpDownHandler); var helpButt:MovieClip = new HelpButton(); super.addChild(helpButt); helpButt.x = 500; helpButt.y = 350; this._buttons[helpButt] = true; helpButt.addEventListener(MouseEvent.MOUSE_DOWN, this.mouseUpDownHandler); } //-------------------------------------------------------------------------- // // Protected methods // //-------------------------------------------------------------------------- protected function mouseUpDownHandler(event:MouseEvent):void { var m:MovieClip = event.target as MovieClip; if (!this._buttons[m]) { trace("Button disabled"); return; } switch (event.type) { case MouseEvent.MOUSE_DOWN: m.gotoAndStop(2); break; case MouseEvent.MOUSE_UP: m.gotoAndStop(1); break; } } } }
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 09:21. |
|
« Предыдущая тема | Следующая тема » |
Теги |
классы , кнопка |
|
|