Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как обратиться к loaderInfo.parameters не из главного класса? (http://www.flasher.ru/forum/showthread.php?t=198461)

zzSpirit 27.04.2013 01:29

Как обратиться к loaderInfo.parameters не из главного класса?
 
Помню кто-то говорил, что ссылку на главный класс передавать не нужно никуда.
Но есть у меня класс VKConnection - синглтон, в который приходится передаваться ссылку на главный класс, чтобы сделать это:
Код AS3:

var flashVars:Object = main.loaderInfo.parameters as Object;

Пробовал такие варианты, как:
  • parent.loaderInfo.parameters
  • parent.stage.loaderInfo.parameters
и другие вариации, но они не работают.

Bletraut 27.04.2013 01:40

Хмм, ну можно так поизвращаться кстати, допустим главный класс игры называется Main, тогда доступ будет такой
Код AS3:

(root as Main).loaderInfo.parameters


chamele0n 27.04.2013 01:49

создаешь глобальный класс
Код AS3:

package {
    dynamic public class Global extends Object  {
 
                public static var parameters:Object = null;
 
        public function Global() {
            return;
        }
    }
}

в главном классе записываешь в него Falshvars
Код AS3:

public class Main extends MovieClip {
        Global.parameters = loaderInfo.parameters;
}

ну и затем в любом из своих классов читаешь эти параметры (Global.parameters)

caseyryan 27.04.2013 09:20

Цитата:

Пробовал такие варианты, как:
parent.loaderInfo.parameters
parent.stage.loaderInfo.parameters
и другие вариации, но они не работают.
А почему они дожны работать? У VKConnection есть экземпляры добавленные на сцену? Откуда там свойство parent?

Вообще, вполне нормальная практика передавать в подобные классы ссылку на stage.
Скажем, в документ классе можно инициализировать свой класс передав ему ссылку на stage
Код AS3:

VKConnection.initialize(stage);

а ы самом классе сделать метод initialize
Код AS3:

public static function initialize(stage:Stage):void {
      var flashVars:Object = stage.loaderInfo.parameters;
}


alatar 27.04.2013 16:51

Нормальная практика передать параметры, а не stage.

caseyryan 27.04.2013 17:23

Согласен. В этом случае лучше параметры передать. Хотя и в передаче stage здесь ничего плохого не вижу. Ссылка все равно не сохраняется.

alatar 27.04.2013 17:31

В любом случае лучше.
- stage может и не быть.
- параметры могут передаваться другим способом, например, загружаться из файла.
- тестирование класса с разными параметрами.
и т.д.

zzSpirit 03.05.2013 20:06

Всем большое спасибо!


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

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