Руководство по 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.01.2011">Руководство по actionscript. часть 1, стр. 048
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 052
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.74
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.6
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 078
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 136
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 044
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 081
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 034
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.36
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 047
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 014
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 057
  • 06.04.2010">Бесплатные шрифты
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 072
Опрос

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

View Results

Loading ... Loading ...