Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChild внутри не отображаемого класса (http://www.flasher.ru/forum/showthread.php?t=95778)

artfabrique 16.05.2007 05:55

addChild внутри не отображаемого класса
 
ситуация такая:
есть класс ErrorManager
его задача эддить на главный дисплей попап самодельный с текстом ошибки.
есть Document class под именем TopLevel:

Код:

package {
        import flash.display.DisplayObject;
        import flash.display.MovieClip;
        import flash.display.Stage;
        import flash.display.DisplayObjectContainer;
        import fl.transitions.Tween;
        import fl.transitions.easing.*;
        import flash.display.*;
        import flash.events.*;

        public dynamic class TopLevel extends MovieClip {
                public var ErrorMan:ErrorManager; //это экземпляр класса будет моего менеджера попапов с ошибками.
                public static  var stage:Stage;
                public static  var root:DisplayObject;
                public function TopLevel() {
                        this.stage.scaleMode = StageScaleMode.NO_SCALE;
                        this.stage.align = StageAlign.TOP_LEFT;
                        this.stage.addEventListener(Event.RESIZE, stageResizeFn); // тут эвент на позиционирование элементов лишний код я не стал писать.
                        TopLevel.stage = this.stage;
                        TopLevel.root = this;
                        ErrorMan = new ErrorManager(); // это собсно сам экземпляр
                }
        }
}

Так же есть мувик errorPopup в библиотеке который стоит как экспорт в АС и экспорт в первом кадре. под него спец класса нету (генерится автоматом)

собственно задача:
когда приказываю - этот инстанс класса ErrorManager (кот. в TopLevel) должен присобачивать в TopLevel на дисплей мой мувик errorPopup и настраивать его параметры (положение, текстовое поле итд).

я дорубаю как addCild делать внуть класса инициатора метода addChild.
тоесть я спокойно(что странно) моки приатачить не на стэйдж а просто внуть ErrorManager мой мувик errorPopup, но естественно на экране он не покажется так как ErrorManager не дисплейный.

так вот как сделать ErrorManager действительно менеджером тоесть чтобы он токо управлял а создавал все снаружи себя - в TopLevel.stage например???????

при попытке вызова внутри конструктора ErrorManager типа

Код:

TopLevel.err = new errorPopup();
TopLevel.stage.addChild(TopLevel.err);
TopLevel.err.addEventListener(Event.ADDED_TO_STAGE,errorInit);

все нормально атачится токо событие не срабатывает. :(
метоб errorInit определен внутри этого же класса ErrorManager.
КАК БЫТЬ????

ТАКЖЕ! также если убрать галку Экспорт в первом кадре то ваще атачится ничерта не будет хотя я сам руками тогда перетаскиваю мувик errorPopup на сцену. При этом варнингов нету никаких ни во время рантайма ни при компиле. :wacko:

etc 16.05.2007 13:49

Что мешает внутри ErrorManager использовать TopLevel.root.addChild?

artfabrique 17.05.2007 06:09

уже ничего. Просто казалось что метод эддчаилд вызывается в контексте класса errorManager. Оказалась опечатка тупая =))

НО! нерешенной остается последняя задача - с экспортом классов НЕ в первый фрэйм. если у мувика из либрари не стоит экспортить в первый фрэйм и в настройках паблиша стоит тоже любой кроме первого то ничерта не будет загружаться даже если ручками из либрари на сцену перетащить мувик (как было в 8-ке). Здесь так не прокатывает =((

А КАК БЫТЬ ТА?? :wacko:

etc 17.05.2007 12:20

Не знаю :)
У меня необходимости в этом ещё не было, но решать проблему в скором времени нужно будет.
Пока могу лишь посоветовать проштудировать хелп на эту тему.

Timerlan 17.05.2007 14:04

о! надо же, не только я с такой проблемой столкнулся ( по поводу экспорта не в первый фрейм). Сам пока никак не решил эту проблему и встроенный хэлп никак не помог.


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

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