Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   достучаться до stage (http://www.flasher.ru/forum/showthread.php?t=127680)

TanaTiX 20.07.2009 17:18

достучаться до stage
 
Можно ли из дочернего подгружаемого класса достучаться до stage, не зная имени основного класса? Как?

Стоит задача определить во внутреннем классе высоту и ширину stage
Каждый раз передавать параметром не хочется, вот ищу другие решения.

switcher! 20.07.2009 17:24

Код AS3:

import flash.display.Stage;

???

iflamberg 20.07.2009 17:27

У любого мувика есть ссылка на stage, если он _ДОБАВЛЕН_НА_СЦЕНУ_.

Т.е.
Код:

function Constructor () {
        addEventListener (Event.ADDED_TO_STAGE, stageHandler);
}

private function stageHandler (e:Event) {
        removeEventListener (Event.ADDED_TO_STAGE, stageHandler);
        trace (stage.stageWidth);
        trace (stage.stageHeight);
}


PgeorgyV 20.07.2009 17:30

если дочерний объект присутствует в списке отображения, то дочерний_объект.stage.stage(Width|Height)
???

TanaTiX 20.07.2009 17:46

Основной класс Main:
Код AS3:

package ttx{
        import flash.display.Sprite;
        import flash.display.Stage;
        import flash.display.MovieClip;
        import flash.display.DisplayObject;
        import flash.events.Event;
 
        public class Main extends Sprite {
                public static  var stage:Stage;
                var rub:Rub = new Rub(2,3);
                public function Main():void {
                        trace(rub.Area());
                }
        }
}

Дочерний класс Rub (в папке ttx):
Код AS3:

package ttx{
        public class Rub {
                public var width:Number;
                public var height:Number;
 
                public function Rub(width:Number = 0, height:Number = 0) {
                        this.width=width;
                        this.height=height;
                }
                public function Area() {
                        return width+height;
                }
        }
}

нужно получить размер именно из класса Rub, при чем не указывая имени родительского класса (в данном случае Main).
Я наверное или что-то не так делаю или не так понимаю. Можно пример? Спасибо.

iflamberg 20.07.2009 17:53

а, так у вас класс не является мувиком и не добавляется на сцену(хм, а зачем ему тогда вообще существовать?)

тогда - никак, кроме как тем способом, который вы использовали.

Ну или извратится - создав глобальную переменную, где хранить ссылку на Main. Что у вас в коде, собственно, почти сделано.


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

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