2009-09-17 5 views
0

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

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

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

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

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

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

+0

это хорошо работает при замене обесцененного метода _global http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_22997849.html – ed209

ответ

0

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

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

0

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