устанавливать и получать переменные во всем фильме — actionscript 3

Мне нужно установить различные переменные в зависимости от того, что щелкает пользователь. Затем эти переменные должны быть доступны другим мувиклипам.

Проблема в том, что во время щелчка эти «другие мувиклипы» еще не существуют на временной шкале.

Что я сделал, так это присвоил переменную родительскому мувиклипу, хотя, думаю, я мог бы так же легко установить их в корень. Затем я бы взял это значение при запуске соответствующего клипа.

// set - works
MovieClip(parent).aMovieClip.someVariable = myVal;

// get? - doesn't work
getVar = MovieClip(parent).aMovieClip.someVariable;

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


person ed209    schedule 17.09.2009    source источник
comment
это довольно хорошо работает при замене устаревшего метода _global experts-exchange. com/Software/Photos_Graphics/Web_Graphics/   -  person ed209    schedule 17.09.2009


Ответы (2)


Ответ скопирован с:

http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_22997849.html

с AS3.0 концепция переменных _global была полностью удалена. хотя внешний класс можно использовать точно так же, как AS2.0 _global

если вы реализуете его правильно, вы должны получить желаемые результаты. вот подробности:

1. создайте класс AS3.0 с именем «glo.as» и сохраните его в той же папке, где находится FLA.

2. Просто скопируйте и вставьте следующий скрипт действий в файл класса "glo.as".

////////////
package
{
      //Class will act as _global object of AS2
      // Static variable "bal" of this class is going to store "varibales, instance's/object's referece to be used by any other class or displayObject/movieClip
      // sample code to store a reference of a movieClip
      //
      // glo.bal.myMovie = this.new_mc;
      //
      //
      public class glo
      {
            public static  var bal:Object = new Object();
      }
}
//////

3. Теперь просто создайте любую глобальную переменную в любом месте, просто используя «glo.bal» вместо «_global».

Например:

glo.bal.myGlobalVariable = 22;

он будет доступен везде в рамках вашего FLA и других классов.


Кредит Аниш Чопра http://www.experts-exchange.com/M_3631521.html

person ed209    schedule 17.09.2009

Вы можете использовать прокси, чтобы позаботиться о значениях, пока объекты еще не существуют. Им нужно будет получать уведомления только тогда, когда мувиклипы становятся доступными, чтобы изменить их с ожидающими значениями.

person Theo.T    schedule 18.09.2009