Предисловие.
Мы опустим работу над дизайном, а затронем программирования на Action Script. Урок рассчитан на начинающих пользователей, которые знают какой программой создаются Flash ролики, но не знают как связать
uCoz с этим языком программирования.
Нужен ли тебе Flash в разработке сайта?
Как и в любом языке программирования Flash решает какие-то задачи лучше, а какие-то хуже. Например плохо использовать его там, где нужна индексация поисковиками, заменять им текст и другую индексируемую информацию, так как поисковые системы очень плохо индексируют Flash ролики. Хорошо использовать его там, где нужна красочная анимация, которая может взаимодействовать с пользователем. Я предпочитаю использовать Flash как элемент сайта. Сайты полностью создание на Flash обычно делаются для презентационных сайтов и сайтов визиток. Главное использовать его с умом.
Чего можно добиться при применении передачи динамических данных uCoz в Flash?
При умелом использовании получаем новый вид модулей, элементов дизайна, функциональности. Можно сделать отличный фотоальбом, или чат.
Способы связать Flash с uCoz.
А теперь подробнее о каждом методе.
Передача переменных в строке.
Это один из самих простых методов передачи данных в среду Flash. При вызове swf файла, вконец адреса приписываем
В итоге получиться
movie.swf?vars1=1&vars2=2 |
Что является точной копией GET запроса для сервера, только в этом случае предаем swf файлу. В данном примере мы передаем две пари "
переменная=значение". И если в среде создания Flash прописать
trace(vars1); //Вывод в дебагере значения vars1
trace(vars2); //Вывод в дебагере значения vars2
|
Мы увидим.
Так можно передавать имя пользователя
movie.swf?USERNAME=$USERNAME$
|
В среде создания Flash просто обращайтесь к переменной
USERNAME и вы получите имя пользователя.
Атрибут FlashVars.
При стандартном добавлении ролика на страницу используются теги OBJECT и EMBED. У них присутствует атрибут FlashVars. Передать данные в систему можно так же, как и в строке — "
переменная=значение", но вписывать их нужно так:
VALUE="USERNAME=$USERNAME$&MODULE_NAME=$MODULE_NAME$">
FLASHVARS="USERNAME=$USERNAME$&MODULE_NAME=$MODULE_NAME$" ...
(другие параметры)> |
В данном примере передается имя пользователя, и название модуля. В среде разработки стоит только обратиться к переменной. В данном примере
USERNAME или
MODULE_NAME.
Текстовый документ.
Этот пример подходит больше для статической информации, но при правильном изменении кода возможно передать и динамическую информацию.
Создаем текстовый документ, и в тело вписываем пари "
переменная=значение", например.
&USERNAME=$USERNAME$&MODULE_NAME=$MODULE_NAME$&
|
Сохраняем в кодировке UTF-8. В среде разработки подгружаем этот файл с мощью LoadVars.
В uCoz нет динамических текстовых документов, но есть одна хитрость. В Action Script нет четкой синтаксической привязки к правильному форматированию переменных, по этому допускается некий отступ от стандартов. Конечно в таком случае нет 100% гарантии в правильном форматировании кода. Как же можно это использовать?
В качестве текстового документа отлично подходит любая генерируемая html страница на uCoz. В тело документа можно вставить пари "
переменная=значение" несмотря на лишний код, их можно удаленно загружать как текстовый документ и обрабатывать.
Если хотим использовать страницу по назначению и одновременно передавать данные в Flash, то можно пари "
переменная=значение" завернуть в комментарии .
Еще один отличный способ, это использование информеров, как динамический текстовый документ. У каждого информера есть свой адрес вида http://site.ucoz.ru/informer/ID , где ID номер информера.
Создаем нужный информер и в шаблоне все переменные передаем как "
переменная=значение".
XML(RSS) файл.
XML - один из самих лучших способов передачи данных в среду Flash. Очень много языков программирования работают с ним.
Основная структура XML файла выглядит так:
Простой хлеб> Мука> Дрожжи> Тёплая вода> Соль> Смешать все ингредиенты и тщательно замесить.> Закрыть тканью и оставить на один час в тёплом помещении.> Замесить ещё раз, положить на противень и поставить в духовку.>
|
Подробнее о самом языке и его структуре можно прочитать здесь. В среде создания Flash обрабатывать XML можно с помощью класса XMLnode. Прочитать про этот класс можно здесь.
uCoz динамические XML файлы в открытом виде использует при отображении Ajax окон (репутация, опросы и т.д.), а так-же для сортировки информации (сортировка товаров в модуле интернет-магазин). В исходном коде можно увидеть прямую ссылку, и использовать ее для загрузки данных в сам Flash.
Если XML файлов в uCoz не так много, то RSS ленты есть у каждого модуля. Структура RSS файла вполне соответствует стандартам XML, и Flash может обращаться и обрабатывать его так же.
JavaScript + Flash.
Есть несколько способов связать эти два языка программирования:
- SetVarible.
- ExternalInterface.
SetVarible.
Используем SetVarible для установки переменной ролику.
getMovie().SetVariable("message","data") |
В Flash проверяем получение переменной и используем ее в коде.
ExternalInterface.
В Flash создаем метод, который будет обрабатывать вызовы из javascript.
Формат Action Script:
ExternalInterface.addCallback(функция JS, объект Flash, функция Flash); |
Если мы создадим метод
ExternalInterface.addCallback("testJS", null, recievetestJS); |
то в JavaScript нужно будет прописать
getMovie().testJS(value); |
Как видим, в uCoz нет полной поддержки передачи динамических данных в среду исполнения Flash, и используя приведенные методы мы сможем использовать только минимум тех возможностей, которые можно использовать.