*** ОБНОВЛЕНИЕ *** Ладно, я был не совсем прав в исходном (ниже) ответе.Посмотрев непосредственно на FLA, выясняется, что проблема заключается в использовании класса документа в сочетании с предварительно определенными экземплярами объектов, размещенных на сцене во время разработки.Происходит следующее: flash автоматически генерирует / объявляет ссылки на эти экземпляры во время выполнения, поэтому единственный способ действительно получить к ним доступ напрямую через класс документа - ссылаться на них следующим образом:
var myObject: Slider = this ["sliderNameInFlashIDE"];
Вот полная статья об этой проблеме и альтернативном обходном пути, требующем отключения этой функции автоматического объявления в IDE.
http://blog.ickydime.com/2008/07/as3-notes-automatically-declare-stage.html
Таким образом, в основном, насколько это применимо к вашему коду:
public function OnCustomEvent(event:CustomEvent): void {
this[\"labelValue\"].text = event.value + \"\";
var cEvent: CustomEvent;
cEvent = new CustomEvent(CustomEvent.ON_CUSTOM_EVENT);
cEvent.value = event.value;
this.dispatchEvent(cEvent);
}
и
public function init( e:Event ):void {
removeEventListener( Event.ADDED_TO_STAGE, init );
this.addEventListener(CustomEvent.ON_CUSTOM_EVENT,OnCustomEvent);
this[\"aslider\"].addEventListener(SliderEvent.CHANGE,OnSliderChange);
}
Решите проблему наличия нулевых ссылок на объекты.
Также, если какой-либо изкод, который я скопировал и вставил, слишком откровенен о природе вашего проекта, дайте мне знать, и я могу изменить код, чтобы он стал более универсальным, так что смысл все еще остался, но природа неясна.
*** ОРИГИНАЛЬНЫЙ ОТВЕТ *** Вы получаете доступ к неопределенной ошибке, потому что ссылка на объект существует раньше, чем объект.Объект создается при создании списка отображения для родителя.Вам необходимо добавить прослушиватель событий для Event.ADDED_TO_STAGE в конструктор MySWF и добавить этот прослушиватель событий (SliderEvent) внутри обратного вызова в ADDED_TO_STAGE.
http://www.emanueleferonato.com/2009/12/03/understand-added_to_stage-event/
http://forums.adobe.com/message/3464172 (В частности, пост Рэнди):
"Экранный объект" в основном "готов при попадании в код конструктора. Но бывают моменты, когда безопаснее добавить прослушиватель событий для" Added to Stage "и в обработчике все будет инициализировано. Например, я обнаружил, что лучше получить Flash Vars из loaderInfo после запуска этого события. "