устанавливать и получать переменные на протяжении всего фильма - actioncript 3 - PullRequest
0 голосов
/ 17 сентября 2009

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 18 сентября 2009

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

0 голосов
/ 17 сентября 2009

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

http://www.experts -exchange.com / Программное обеспечение / Photos_Graphics / Web_Graphics / Macromedia_Flash / Q_22997849.html

в AS3.0 концепция глобальных переменных была полностью удалена. хотя внешний класс может использоваться как 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

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