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

Max360 12.06.2011 14:28

Проблема с обработчиком события
 
Вложений: 1
Здравствуйте! Наткнулся на какой-то "ДИКИЙ ЛАГ", вообщем в функции-приемнике onAdd_Click, не создается экземпляр класса Sprite и TextField также. Если перенести весь код функции допустим в конструктор класса Main() то все будет ок! Пожалуйста, помогите разобраться. Зарание спасибо!

goodguy 12.06.2011 15:39

Max360, советую завести себе привычку писать коды возникающих ошибок, а не что-то типа "какой-то "ДИКИЙ ЛАГ"".

Что значит не создается. Что там просиходит вообще?

i.o. 12.06.2011 15:42

Цитата:

Пожалуйста, помогите разобраться
ошибка в невнимательности.

Добавлено через 1 минуту
Цитата:

Что там просиходит вообще?
Для тех, кому влом скачивать и распаковывать :)
Код AS3:

package  {
        import flash.display.Stage;
        import flash.events.KeyboardEvent;
        import flash.system.fscommand;
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.display.MovieClip;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.display.Sprite;
 
        public class Main extends Sprite{
                private var _stage:Object;
                private var _rt:Object;
                private var obj:MovieClip;
                private var masDisObj:Array = new Array();
        //-----------------------------------------------------------------------------------------------------------------
                public function Main(rt:Object):void {
                        super();
                        _rt = rt;
                        _stage = _rt.stage;
 
                        _rt.addEventListener(KeyboardEvent.KEY_DOWN, onKey_Down);
                        _rt.addEventListener(MouseEvent.MOUSE_DOWN, onMouse_Down);
 
                        _rt.exitWin_but.addEventListener(MouseEvent.MOUSE_OVER, onWinBut_Over);
                        _rt.exitWin_but.addEventListener(MouseEvent.MOUSE_OUT, onWinBut_Out);
                        _rt.exitWin_but.addEventListener(MouseEvent.CLICK, onWinBut_Click);
 
                        _rt.maxWin_but.addEventListener(MouseEvent.MOUSE_OVER, onWinBut_Over);
                        _rt.maxWin_but.addEventListener(MouseEvent.MOUSE_OUT, onWinBut_Out);
                        _rt.maxWin_but.addEventListener(MouseEvent.CLICK, onWinBut_Click);
 
                        _rt.minWin_but.addEventListener(MouseEvent.MOUSE_OVER, onWinBut_Over);
                        _rt.minWin_but.addEventListener(MouseEvent.MOUSE_OUT, onWinBut_Out);
                        _rt.minWin_but.addEventListener(MouseEvent.CLICK, onWinBut_Click);
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onWinBut_Click(e:MouseEvent):void{
                        if(e.currentTarget == _rt.exitWin_but){
                                _stage.nativeWindow.close();
                        } else if(e.currentTarget == _rt.maxWin_but){
                                if(_rt.maxWin_mc.currentFrame == 2){
                                        _stage.nativeWindow.maximize();
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(3);
                                } else if(_rt.maxWin_mc.currentFrame == 4){
                                        _stage.nativeWindow.restore();
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(1);
                                }
                        } else if(e.currentTarget == _rt.minWin_but){
                                _stage.nativeWindow.minimize();
                        }
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onWinBut_Over(e:MouseEvent):void{
                        if(e.currentTarget == _rt.exitWin_but){
                                (_rt.exitWin_mc as MovieClip).gotoAndPlay(2);
                        } else if(e.currentTarget == _rt.maxWin_but){
                                if(_rt.maxWin_mc.currentFrame == 1){
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(2);
                                }else if(_rt.maxWin_mc.currentFrame == 3){
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(4);
                                }
                        } else if(e.currentTarget == _rt.minWin_but){
                                (_rt.minWin_mc as MovieClip).gotoAndPlay(2);
                        }                       
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onWinBut_Out(e:MouseEvent):void{
                        if(e.currentTarget == _rt.exitWin_but){
                                (_rt.exitWin_mc as MovieClip).gotoAndPlay(1);
                        } else
                        if(e.currentTarget == _rt.maxWin_but){
                                if(_rt.maxWin_mc.currentFrame == 2){
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(1);
                                }else if(_rt.maxWin_mc.currentFrame == 4){
                                        (_rt.maxWin_mc as MovieClip).gotoAndPlay(3);
                                }
                        } else
                        if(e.currentTarget == _rt.minWin_but){
                                (_rt.minWin_mc as MovieClip).gotoAndPlay(1);
                        }       
                }       
        //-----------------------------------------------------------------------------------------------------------------
                private function onMouse_Down(e:MouseEvent):void{
                        _stage.nativeWindow.startMove();
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onKey_Down(e:KeyboardEvent):void{
                        switch(e.keyCode){
                                case 27:{
                                        _stage.nativeWindow.close();
                                        break;
                                }
                        }
                }
        //-----------------------------------------------------------------------------------------------------------------
                public function init():void{                                       
                        obj = new FN();
                        obj.x = _stage.stageWidth/2;
                        obj.y = 170;
                        masDisObj.push(obj);
                        _stage.addChild(masDisObj[masDisObj.length - 1]);
 
                        _rt.addMess.addBut.addEventListener(MouseEvent.CLICK, onAdd_Click);
                        _rt.addMess.delBut.addEventListener(MouseEvent.CLICK, onDel_Click);
                        _rt.addMess.createBut.addEventListener(MouseEvent.CLICK, onCreate_Click);
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onAdd_Click(e:MouseEvent):void{
                        var container:Sprite = new Sprite();
                        container.x = 100;
                        container.y = 100;
 
                        var tf:TextField = new TextField();
                        tf.embedFonts = true;
                        tf.maxChars = 40;
                        tf.multiline = true;
                        tf.wordWrap = true;
                        tf.text = _rt.addMess.txtFld.text;
                        tf.autoSize = TextFieldAutoSize.CENTER;
                        container.addChild(tf);
 
                        _stage.addChild(container);
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onDel_Click(e:MouseEvent):void{
 
                }
        //-----------------------------------------------------------------------------------------------------------------
                private function onCreate_Click(e:MouseEvent):void{
 
                }
        //-----------------------------------------------------------------------------------------------------------------
        }
 
}


Max360 12.06.2011 15:53

goodguy, если бы вылетала ошибка, то я бы обязательно ее написал. Мог бы более конкретней объяснить в чем проблема - так и сделал бы. Вообщем вроде бы оно заработало, но по какой причине я до сих пор не могу понять. Тему можно закрыть.

Добавлено через 4 минуты
Извиняюсь, за некорректный вопрос.


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

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