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

Подобным образом при использовании методов и переменных класса MovieClip над загруженным SWF-файлом мы приводим значение переменной content к типу MovieCl ip. Например, следующий код начинает воспроизведение гипотетической анимации путем вызова метода экземпляра play ( ) miaccaMovieClip над загруженным элементом. Операция приведения типов (обязательная) сообщает компилятору, что загруженный элемент является потомком класса MovieCl ip и, следовательно, поддерживает метод play ( ).

MovieClip(loader. content).play( );

Точно так же, когда используются пользовательские методы и переменные основного класса загруженного SWF-файла, вполне естественно ожидать, что значение переменной content приводится к этому основному классу. Предположим, что приложение Main. swf загружает другое приложение Module. swf, основным классом которого является класс Module. Предположим также, что класс Module определяет собственный метод start ( ). Когда приложение Ma in. swf загружает приложение Module. swf, среда выполнения Flash автоматически создает экземпляр класса Module и присваивает его переменной content. Таким образом, чтобы вызвать метод start ( ) над загруженным экземпляром класса Module, можно предположить, что необходимо использовать следующую операцию приведения типов:

Module(loader. content).start( );

Хотя, по существу, предыдущий код корректен, фактически он будет вызывать ошибку на этапе компиляции до тех пор, пока не будут приняты особые меры при компиляции файла Main. swf. Рассмотрим почему.

Предположим, что приложения Ma in. swf и Module, swf созданы в виде отдельных проектов в приложении Flex Builder 2. Эти два проекта созданы с учетом того, что приложения должны быть автономными и независимыми, поэтому в них используется совершенно разный код и они никак не ссылаются друг на друга. В проекте приложения Module. swf определяется класс Module, однако приложение Main. swf ничего не знает про этот класс. При построении файла Main, swf компилятор встречает следующий код:

Module(loader. content).start( )

и не может разрешить ссылку на класс Module, используя пути, указанные для свойства ActionScript Build Path (Путь компиляции ActionScript) приложения Main. swf. Не найдя класс Module, компилятор предполагает, что выражение Module (loader. content) является вызовом метода. Однако метода с именем Module не существует, поэтому компилятор генерирует следующую ошибку типа:

1180: Call to a possibly undefined method Module.

По-русски она будет звучать так: Вызов, возможно, неопределенного метода Module.

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

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

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

Полезные ссылки
Случайные записи
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.23
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 090
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 067
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.137
  • 27.07.2011">iPhone 5 получит Bluetooth 4.0!
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 083
  • 21.06.2011">Как правильно оптимизировать сайт для социальных сетей
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 050
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 021
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.63
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 076
  • 01.04.2012">ЕС создаст центр по борьбе с киберпреступностью
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 127
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.102
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 038
Опрос

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

View Results

Loading ... Loading ...