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

Подробную информацию о. методе allowDomain() и безопасности приложения Flash Player м$ j * можно найти в разд. «Разрешения создателя (allowDomain())» гл. 19.

Стоит отметить, что вызов метода а 11 о wDoma i n ( ) позволяет не только обрабатывать события между границами зон безопасности: все SWF-файлы из разрешенного домена получают возможность осуществлять кросс-скриптинг над SWF-файлом, в котором был вызван метод allowDomain ( ). Однако существует альтернатива всеобъемлющим разрешениям, выдаваемым методом allowDomain ( ).

Альтернатива методу allowDomain( ): разделяемые события

В некоторых случаях SWF-файлы из различных доменов могут пожелать совместно использовать события, не предоставляя при этом всех полномочий для кросс-скриптинга. Для решения подобных проблем приложение Flash Player предоставляет переменную экземпляра sharedEvents класса Loaderlnf о. Переменная sharedEvents — это простой нейтральный объект, через который два SWF-файла могут отправлять события друг другу, независимо от ограничений, обусловленных требованиями безопасности. Этот подход позволяет осуществлять взаимодействие между SWF-файлами, основанное на событиях, не отменяя требований безопасности, но для его реализации требуется написание большего объема кода, чем при использовании альтернативного подхода с методом allowDomain ( ).

Рассмотрим применение переменной sharedEvents на примере. Предположим, что Томми основал компанию по производству фейерверков и создал рекламный сайт www. blast. ca с использованием технологии Flash. Томми нанял подрядчика Дерека для создания отдельного элемента, реализующего эффект, который заключается в хаотичной генерации анимированных взрывов фейерверков под указателем мыши. Дерек создает SWF-файл MouseEf fect. swf, в котором реализован этот эффект, и размещает его по адресу www. dereksflasheffects. com/MouseEffect. swf. Дерек говорит Гомми загрузить файл MouseEf f ect. swf в его приложение www. blast. ca/BlastSite. swf. Церек и Томми согласились, что файл MouseEf feet. swf должен размещаться на :ервере www. derekflasheffects. com, что в дальнейшем позволит Дереку легко обновлять данный файл, не внося при этом никаких изменений в сайт Томми.

Гомми просит Дерека изменить файл MouseEf feet. swf таким образом, чтобы генерация взрывов прекращалась в тот момент, когда указатель мыши покидает об-1асть отображения приложения Flash Player. Дерек считает эту идею целесообраз-¦юй и приступает к написанию соответствующего кода. В обычной ситуации, чтобы шределить выход указателя мыши за пределы области отображения приложения Flash Player, код в файле MouseEf feet. swf должен зарегистрировать приемник * экземпляре Stage для событий Event. MOUSE_LEAVE. Однако, поскольку фай-ты MouseEf feet. swf и BlastSite. swf размещены в разных доменах, файл MouseEf feet. swf не имеет доступа к экземпляру Stage. Томми решает, что

вместо того, чтобы предоставлять файлу MouseEf feet. swf полный доступ к файлу BlastSite. swf, он просто переадресует все события Event. MOUSE_LEAVE файлу MouseEf feet. swf через переменную sharedEvents.

Листинг 12.6 демонстрирует код файла BlastSite. swf, относящийся к переадресации событий.

Листинг 12.6. Переадресация события через переменную sharedEvents

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

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

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

new URLRequest(«http://www. dereksf1asheffects. com/MouseEffect. swf»)); addChild(loader);

// Регистрируем приемник для событий Event. MOUSE_LEAVE

stage. addEventLi stener(Event. MOUSE_LEAVE. mouseLeaveLi stener);

}

// Когда возникает событие Event. MOUSELEAVE…. private function mouseLeaveListener (e:Event):void {

// …переадресуем его файлу MouseEffeet. swf

1oader. contentLoaderlnfо. sharedEvents. di spatchEvent(e);

}

}

}

Листинг 12.7 демонстрирует код файла MouseEf feet. swf, относящийся к обра ботке событий.

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

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

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

Полезные ссылки
Случайные записи
  • 12.11.2011">Абстрактная иллюстрация в Фотошопе
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 139
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.99
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.69
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 039
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.60
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.35
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 064
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.13
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 153
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.146
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 106
  • 17.03.2011">Руководство по actionscript. часть 3, стр. 001
  • 14.07.2011">Продвижение неизбежно
  • 28.02.2011">Руководство по actionscript. часть 5, стр. 135
Опрос

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

View Results

Loading ... Loading ...