Имитация переменной AS2 _global с использованием простого класса в AS3 - PullRequest
0 голосов
/ 14 февраля 2011

Я недавно начал (и продолжаю делать) переход от ActionScript 2 к 3. Я использовал переменную _global в проекте AS2, так как мне нужно, чтобы переменная была доступна из ЛЮБОГО swf, загруженного в мой основной фильм. Это работало как удовольствие.

Тем не менее, появился AS3 и ударил его прямо из-под ног. После долгих поисков Google несколько человек предложили использовать простой класс с простой переменной, которую можно публично установить и получить. Я сделал простой класс, импортировал его и управлял значением, и все прошло хорошо, однако экземпляр класса, который я создаю в моем фильме основного загрузчика, все еще недоступен из-за второго SWF-файла, который загружается в мой фильм. Если я повторно создаю экземпляр класса в SWF, который динамически загружается, значение возвращается к значению по умолчанию в коде класса, а не к новому значению, установленному в моем родительском (первом) фильме.

Вот мой код класса, хранящийся во внешнем файле .as. Можно ли каким-то образом смоделировать переменную ostype как глобальную переменную?

package{
    public class ostype {
        public var ismac:Boolean = false;
        public function returnOs(){
            return ismac;
        }
    }
}

Если он помогает узнать контекст кода, он используется в качестве простого идентификатора операционной системы, в которой используется это флэш-приложение (Mac или Windows), и в результате давайте мне содержимое сервера - например, сохранение файлов. - по-другому.

Спасибо за любые советы.

Simon

1 Ответ

2 голосов
/ 14 февраля 2011

Используйте статические переменные:

package {
    class GlobalVars {
        public static var isMac:Boolean = false;
    }
}

Затем вы можете получить доступ к любому члену, подобному этому: GlobalVars.isMac = true;.

Кроме того, у вас может быть статическая функция, возвращающая ОС (хотя Capabilities.os должен помочь вам).

...