Дизайнеры любят добавлять на сайт красивые flash-эффекты, делать анимированные элементы навигации или другие детали сайта. Чтобы пользоваться flash-элементами было удобно сделали параметр FlashVars, через который можно без труда передать данные в SWF-файл. Рекомендую использовать FlashVars при небольшом объеме данных. Предположим нужно загрузить во флеш массив ссылок, например: облако тегов, URL'ы картинок и описания к ним или цену товара.

Для передачи более объемных данных используйте выгрузку файла XML с дальнейшим парсингом этих данных swf-файлом.

Пример передачи данных через FlashVars

Рассмотрим пример передачи параметров в swf-файл в стандартном двусоставном методе вставки flash
<object width="225" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,18,0" 
id="flashCont" type="application/x-shockwave-flash">

        <param name="FlashVars" value="setParam1=true&setParam2=1890&setParam3=/myImage.jpg" />
	
        <param name="quality" value="high" /> 
	<param name="scale" value="noborder" /> 
	<param name="salign" value="t" /> 
	<param name="wmode" value="opaque" /> 
	<param name="src" value="/template/flashCont.swf" /> 
	<param name="width" value="225" />
	<param name="height" value="400" />
	<embed width="400" height="160" id="flashCont" src="/template/flashCont.swf" 
        FlashVars="setParam1=true&setParam2=1890&setParam3=/myImage.jpg"; /> 
</object>
В данном примере мы передаем в Flash-плеер три параметра setParam1, setParam2 и setParam3, каждое значение параметра является строковой переменной, то есть принадлежит типу данных String. Не смотря на то, что мы передаем булево значение и число, SWF-файл примет значения, как строки. Типизируйте значения при необходимости, приведите их к нужным типам или работайте со строковыми значениями.

Передача данных через FlashVars с использованием SWFObject

Рассмотрим пример передачи параметров в swf-файл используя библиотеку SWFObject
<script type="text/javascript">//<![CDATA[
   var flashvars = { setParam1:"true",
		     setParam2:"1890",
		     setParam3:"/myImage.jpg"
		};
   var params = {
                 wmode: "opaque",
                 quality: "high",
                 scale:"noscale",
                 menu:"none"
                };
   var attributes = {};
   
   swfobject.embedSWF("/template/simply.swf", "idContainer", "280", "600", "9.0.0", 
                      "/template/expressInstall.swf", flashvars, params, attributes);

           //]]>
</script> 
 <div id="idContainer">
      <p>Альтернативное содержимое</p>
 </div>

Запись параметров и значений FlashVars с использованием библиотеки SWFObject становится более простой, стройной и понятной, рекомендую использовать SWFObject, не наделае те лишних ошибок с ампресандами и покажите альтернативный контент, если компьютер пользователя не оснащен флеш-плеером. 

Принимаем значения SWF-файлом

Пример получения значений передаваемых через FlashVars в ActionScript 3

var getParam1 = this.root.loaderInfo.parameters.setParam1;
var getParam2 = this.root.loaderInfo.parameters.setParam2;
var getParam3 = this.root.loaderInfo.parameters.setParam3;

/*Вывод переменной*/
trace(getParam1);

/*Если Вам нужно типизировать (привести к типу данных) значения - это просто*/
getParam1 = Boolean(getParam1);
getParam2 = int(getParam2);

Вернуться в раздел: Блог