Передача переменных во Flash
Возможность создания красивых и ярких баннеров – не единственное достоинство Flash MX. С помощью технологии Flash можно создавать очень серьезные приложения. Рассмотрим на примере.
Предположим, нам необходимо создать на сайте страницу, содержащую изображение (например, карту) и выдавать разным посетителям изображение в различном масштабе. Как это можно реализовать? Очень просто. Flash позволяет передавать в Action Script GET-переменные, чем мы и воспользуемся. Делается это следующим образом.
Обычно Flash ролик вставляется на страницу примерно так:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
WIDTH="300" HEIGHT="300" id="movie"><PARAM
NAME=movie VALUE="mymovie.swf"><EMBED src="mymovie.swf"
WIDTH="300" HEIGHT="300"></EMBED></OBJECT>
Чтобы стало возможно работать с переменными, переданными документу через метод GET, нам нужно модифицировать данный код так (изменения в коде выделены жирным шрифтом):
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
WIDTH="300" HEIGHT="300" id="movie"><PARAM
NAME=movie VALUE="mymovie.swf"><PARAM NAME=FlashVars VALUE="?size=3"
><EMBED src="mymovie.swf" FlashVars="?size=3"
WIDTH="300" HEIGHT="300"></EMBED></OBJECT>
На следующем этапе нужно написать простенький JavaScript, например такой:
<script language=”JavaScript”>
var getvars = location.search;
getvars=getvars.substr(1);
var str='<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
WIDTH=\"300\" HEIGHT=\"300\" id=\"movie\">
<PARAM NAME=movie VALUE=\"mymovie.swf\">
<PARAM NAME=FlashVars VALUE=\"'+getvars+'\" >
<EMBED src=\"mymovie.swf\" FlashVars=\"'+getvars+'\" WIDTH=\"300\"
HEIGHT=\"300\"></EMBED></OBJECT>';
document.write(str);
</script>;
Здесь мы вначале заводим переменную "getvars", в которую посредством "location.search" помещаются переменные, переданные с помощью метода GET. Посредством substr(1) мы отбрасываем знак "?" в начале строки. В "str" помещается код с экранированными кавычками и подставленной где нужно переменной "getvars".
Теперь при переходе на страницу, скажем, по ссылке вида: http://example.ru/?size=3, во Flash-ролик будут передана переменная "size" со значением "3".
При создания Flash-ролика к ней можно обращаться как к любой другой переменной:
_root.mymovie._width=_root.size*300; _root.mymovie._height=_root.size*300;
- высота и ширина клипа "mymovie" будут увеличены в три раза.
