Руководство по 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

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

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

Полезные ссылки
Случайные записи
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 030
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.66
  • 05.11.2011">Как сделать кнопку для сайта
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.6
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 034
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.164
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.21
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 092
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 068
  • 08.03.2012">Новый рекорд Skype: 35 млн одновременных пользователей
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 136
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.84
  • 22.02.2013">Новая информация о Destiny
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 080
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 099
Опрос

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

View Results

Loading ... Loading ...