2009-08-12 3 views
2

В качестве новичка Flash я нашел это очень запутанным, и это обошлось мне пару часов. Отвечая на мой собственный вопрос здесь, если у кого-то такая же проблема.Передать переменные во Flash-фильм из HTML

Технически вы должны быть в состоянии сделать что-то вроде этого:

<param name="movie" value="movie.swf?param=value" /> 
<embed src="movie.swf?param=value" ... 

Или это:

<PARAM NAME "FlashVars" VALUE="param=value"> 
<EMBED .... FlashVars="param=value"> 

Оба должны создать переменную в _root или _level0 рамки под названием «парам» с правильным стоимость.

Они описаны here

Однако в моей конкретной версии Flash (CS4, ActionScript 2.0), это не сработало.

+0

Не могли бы вы разместить свой код HTML и ActionScript? Flashvars - отличный способ получить данные в вашем приложении Flash, и все, что вы сказали, верное. – Newtang

ответ

0

Ответ, который работал для меня, заключается в том, чтобы изменить функцию AC_FL_RunContent() в HTML, сгенерированную CS4, добавив параметры, которые необходимо передать в фильм, например.

'flashvars', 'param=value', 

Эта функция перезаписывает все, что непосредственно указано в тегах OBJECT и EMBED или в строке запроса.

Там могут быть лучшие решения там ...

1

Вы также можете использовать ExternalInterface для вызова функции JavaScript на странице HTML, которая возвращает значение. Это добавочное значение, которое вам не требуется для жесткого кодирования значения, и вы можете передать параметры функции JavaScript.

В Flash-ролик:

import flash.external.ExternalInterface; 

function getOutsideValue(argToJS:String):Void { 
var jsArgument:String = argToJS; 
var result:Object = ExternalInterface.call("stringAdd", jsArgument); 
} 

В Javascript в HTML страницы:

function stringAdd(inptStr){ 
var strToAdd = inptStr; 
strToAdd += " added text"; 
return strToAdd; 
} 

Так при вызове функции ActionScript в Flash:

getOutsideValue("I get"); 

Это будет возвращение:

I get added text 

Обратите внимание, что ExternalInterface также может использоваться для вызова функций внутри Flash из JavaScript. Примеры обоих можно найти здесь: http://kb2.adobe.com/cps/156/tn_15683.html

Кажется, что это рекомендуемый способ передачи информации в и из SWF-фильмов, это, безусловно, более динамично и мощно, чем просто использование жестко закодированных значений.

+0

Спасибо, это приятное решение :) – lucrussell

Смежные вопросы