Actionscript 3 - Назначить глобальные переменные внутри функции - PullRequest
1 голос
/ 11 сентября 2011

У меня есть функция AS3, которая запускается при сбое URLRequest. Мне нужно иметь возможность использовать эту функцию, чтобы назначать глобальные переменные, которые я затем могу проверить с помощью других функций. Как назначить глобальные переменные внутри функции?

Спасибо!

Редактировать: это переменная (soundFile2Exist), которую я пытаюсь выйти за пределы моей функции:

function onIOError(e:IOErrorEvent):void 
{

    var soundFile2exist = null;
    trace (soundFile2exist);
}

Я не использую свой код внутри пакета. Есть ли еще способ сделать это?

function playMusic(evt:MouseEvent):void
{
    channel = myMusic.play(songPosition);
    if (soundFile2exist != null) {
          channel2 = myMusic2.play(channel.position);
    }
    myTimer.start();
    btnPlay.mouseEnabled = false;
    trace (soundFile2exist);

}

Ответы [ 2 ]

4 голосов
/ 11 сентября 2011

Если ваш код «не в пакете» (как в скрипте кадра на временной шкале), любые переменные, которые вы объявляете на том же уровне, в той же области видимости, поскольку ваши функции будут доступны для функций в этой области, поэтомуВы могли бы сделать что-то в строках этого:

var soundFile2exist;

function onIOError(e:IOErrorEvent):void {
   soundFile2exist = null;
}

function otherFunction():void {
   trace (soundFile2exist);
}

В других ситуациях статические переменные класса могут использоваться вместо глобальных переменных.

1 голос
/ 11 сентября 2011

Наиболее распространенным подходом является создание класса Singleton, на который вы затем сможете ссылаться из любого места. Это в основном устанавливает класс, где единственный способ получить доступ к экземпляру этого класса - через управляемый статический метод, который возвращает один и только один экземпляр. Поэтому, когда вы говорите MySingleton.getInstance (), вы всегда получаете один и тот же объект.

У Гранта Скиннера есть краткое описание того, как реализовать Singleton в AS3: http://gskinner.com/blog/archives/2006/07/as3_singletons.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...