Руководство по actionscript. часть 6, стр. 039

Листинг 28.10. Периодическая проверка существования загруженного объекта

package { import flash. display.*; import flash. events.*; import flash. net.*; import flash. utils.*;

public class Main extends Sprite { private var loader:Loader;

public function Main( ) { // Загружаем файл Module. swf loader = new Loader( );

1 oader. contentLoaderlnfo. addEventLi stener(Event. INIT.

initListener);

1oader.1oad(new URLRequest(«Module. swf»));

}

private function initListener (e:Event):void { // Загруженный SWF-файл был проинициализирован, // поэтому начинаем периодическую проверку существования // объекта TextField. var timer:Timer = new TimerdOO, 0); timer. addEventListener(TimerEvent. TIMER, timerListener); timer. start( );

}

private function timerListener (e:TimerEvent):void { // Проверяем, был ли создан объект TextField // загруженного SWF-файла if (loader. content. hasOwnPropertyC’t»)) {

// Объект TextField уже существует, поэтому мы можем благополучно

// обратиться к нему

trace(Object(loader. content).t. text);

// Останавливаем таймер е. target. stop( );

}

}

}

}

Теперь снова предположим, что приложение Main, swf загружает приложение Module. swf и желает обратиться к объекту t. На этот раз, однако, основной класс Module приложения Module. swf рассылает пользовательское событие Module. ASSETS_READY, когда объект t становится доступным. Приложение Main. swf регистрирует приемник для события Module. ASSETS_READY и обращается к объекту t, когда возникает данное событие. Рассмотрим код для класса Module, в котором определена константа события:

package { import flash. display. MovieClip;

class Module extends MovieClip { // Определяем константу события

public static const ASSETS_READY:String = «ASSETS_READY»;

Теперь рассмотрим сценарий, размещаемый во втором кадре основной временной шкалы приложения Module. swf, который осуществляет диспетчеризацию события, обозначающего доступность объекта t:

stop( );

var t:TextF1eld = new TextField( );

t. text = «hello»;

addChild(t);

di spatchEvent(new Event(Module. ASSETS_READY));

Наконец, в листинге 28.11 представлен код для основного класса приложения Main. swf. Предполагается, что на этапе компиляции компилятор языка ActionScript не имеет доступа к определениям классов загружаемого SWF-файла. В итоге этот код ссылается на событие Module. ASSETS_READY по его строковому имени «ASSETS_READY»:

1oader. content. addEventListener(«ASSETS_READY», assetsReadyListener);

Подобным образом в данном коде значение переменной loader. content приводится к типу Ob j ect, поэтому проверка типов откладывается до этапа выполнения:

Object(1oader. content).t. text

Полную информацию о проверке типов загружаемых элементов можно найти в разд. «Проверка типов на этапе компиляции для динамически загружаемых элементов».

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.16
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 093
  • 24.02.2011">Руководство по actionscript. часть 7, стр. 015
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.51
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 028
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.73
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.102
  • 11.08.2010">Популярное расположение контактной информации
  • 23.07.2011">Дизайнеры помогут преобразить любое жилье
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 108
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 020
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 101
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 066
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 044
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 026
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...