XML-файл как flashvars в SWFobject - PullRequest
0 голосов
/ 23 июля 2010

У меня есть флэш-файл с XML-файлом в качестве flashvars. когда я использую этот код, он работает в любом браузере, но не в IE 7 или выше.

OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
         codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
         WIDTH="530" HEIGHT="410" id="usa_locator" ALIGN="">
         PARAM NAME=movie VALUE="app_themes/theme1/usa_locator_demo.swf">
         PARAM NAME=FlashVars VALUE="app_themes/theme1/usa_locator.xml"> 
         PARAM NAME=quality VALUE=high>
         param name="wmode" value="transparent">
         PARAM NAME=bgcolor VALUE=#F5F5F5>
         EMBED src="app_themes/theme1/usa_locator_demo.swf?xmlfile1=app_themes/theme1/usa_locator.xml" quality=high  wmode="transparent" bgcolor=#F5F5F5  WIDTH="530" HEIGHT="410" NAME="usa_locator" ALIGN=""
         TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
EMBED>
        /OBJECT>

После прочтения SWFObject кажется хорошим вариантом. Все, что вам нужно сделать, это:

1 - включить swfobject.js в шапку 2- Создайте пустой div для включаемого flash-объекта

<div id="myContent">
  <p>Alternative content</p>
</div>

3- Вставить флеш в div с помощью javascript:

<script type="text/javascript">
        swfobject.embedSWF("app_themes/theme1/usa_locator_demo.swf", "myContent", "530", "410", "6", false, **flashvars**);
    </script>

Единственная проблема, с которой я столкнулся: я не знаю, как передать flashvars через URL для файла xml. Мне кажется, что SWFObject не поддерживает это. Вместо этого вам нужно создать список flashvars как

var flashvars = {
  name1: "hello",
  name2: "world",
  name3: "foobar"
};

и передать переменную в javascript. XML-файл, который у меня есть, очень большой и имеет много переменных, я не знаю, как это сделать. Пожалуйста помоги.

Мой XML-файл выглядит примерно так:

usa_map_locator>
config>
  color_state_name>0xffffff</color_state_name>
  color_state_name_over>0xffffff</color_state_name_over>
  type_of_gradient>1</type_of_gradient>
  background_color>0xffffff</background_color>
  show_links>0</show_links>
  light_effect>1</light_effect>
  border_color>0xffffff</border_color>
  sound>on</sound>
/config>


map_data>
state>
  id>1</id>
  name>Washington</name>
  link>#</link>
  comment>Address:
Phone:
E-mail:
  /comment>  
  color_map>0x7798BA</color_map>
  color_map_over>0x0054A6</color_map_over>
  frame>_top</frame>
  image>photo.jpg</image>
/state>
state>
  id>2</id>

..... для всех 50 штатов

1 Ответ

0 голосов
/ 23 июля 2010

вам нужно всего лишь сделать что-то вроде:

var flashvars = { xmlfile1: "app_themes/theme1/usa_locator.xml" }

То, что вы обычно передаете как GET (то есть flashvars), это простой список параметров ключ / значение, и в этомПоэтому вы преобразуете этот список в объект ключ / значение в JavaScript.

...