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

Trains 24.03.2008 18:40

Удаление приатачиног окошка вложенной кнопкой
 
Приветствую!
Появилась проблема, решения на которую найти не удалось.
Из Мейн.ас прикрепляется окошко из библиотеки:

Код:

import main.Warning_Window;
private function show_window():void{
        var warning_window:Warning_Window = new Warning_Window("Внимание","какойто текст",true);
        addChild(warning_window);
}

В мувике окошка лежит кнопка, которая должна удалять это окошко - в этом то и проблема. К мувику привязан класс:

Код:

package main{
        import flash.display.Sprite;
        import flash.text.TextField;
        import flash.display.SimpleButton;
        import flash.events.MouseEvent;
        import flash.display.DisplayObject;
        import flash.display.DisplayObjectContainer;
        public class Warning_Window extends Sprite {
                public function Warning_Window(header:String,error_text:String,but_enable:Boolean) {
                        this.x = 200;
                        this.y = 70;
                        //действие кнопки закрыть
                        function Close_But():void {
                                this.parent.removeChildAt(this);
                                this.parent.parent.removeChild(this.parent);
                                //Выдает ошибку:
                                //TypeError: Error #1010: A term is undefined and has no properties.
                                //at MethodInfo-29()
                        }
                        this.close_but.addEventListener(MouseEvent.CLICK, Close_But);
                        //есть ли крестик закрыть
                        this.close_but.enabled = but_enable;
                        this.close_but.visible = but_enable;
                        //впишем заголовок и текст
                        this.header_textbox.text = header;
                        this.text_textbox.text = error_text;
                }
        }
}

Даже не представлял, что такие проблемы могут возникть.
Заранее спасибо за помошь.

silin 24.03.2008 20:02

не сумел понять, что там у тебя понаписано ( и не буду, сори)
провел такой эксперимент, глянь: может понятнее станет
Код:

package {
        import flash.display.Sprite;
       
        public class Main extends Sprite        {
                public function Main():void        {
                        var win:Win = new Win();
                        addChild(win);
                }
        }
}

Код:

package  {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
       
        public class Win extends Sprite{
               
                public function Win() {
                        //просто рамка
                        graphics.lineStyle(0);
                        graphics.drawRect(0, 0, 200, 200);
                        //'кнопка' удаления
                        var closeBut:Sprite = new Sprite();
                        closeBut.graphics.beginFill(0);
                        closeBut.graphics.drawRect(0, 0, 50, 50);
                        addChild(closeBut);
                        closeBut.addEventListener(MouseEvent.CLICK, closeClick);
                }
               
                private function closeClick(e:MouseEvent):void {
                        parent.removeChild(this);//по клику удаляем экзкмпляр win( себя то есть) из дисплейЛиста родителя
                }
               
        }
       
}


Trains 25.03.2008 15:36

Хех, вот загнался, функцию в функции определил...
спасибо за помощь:)


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

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