Cómo pasar variable de PHP como FlashVars a través de SWFObject

Estoy tratando de tomar una variable PHP y pasarla a Flash a través de Flash vars. Mi objective final es pasar una cadena formateada como XML a Flash, pero como estoy luchando, he reducido todo a lo básico. Solo bash pasar una variable de cadena de PHP simple a Flash a través de FlashVars con SWFObject, pero algo no está bien. La página no se cargará cuando intente pasar la variable dentro de las tags php, pero se cargará si paso una cadena codificada. La estructura básica de mi página es que tengo algo de PHP declarado en la parte superior, así:

PHP

 

Algunos HTML (excluidos aquí por simplicidad) y luego el SWFObject de JavaScript Incrustar en mi HTML:

    // <![CDATA[ var swfURL = "swfs/Init-Flash-PHP.swf"; var flashvars = {}; flashvars.theXML = ; var params = {}; //params.menu = "false"; params.scale = "showAll"; params.bgcolor = "#000000"; params.salign = "TL"; //params.wmode = "transparent"; params.allowFullScreen = "true"; params.allowScriptAccess = "always"; var attributes = {}; attributes.id = "container"; attributes.name = "container"; swfobject.embedSWF(swfURL, "container", '100%', '100%', "9.0.246", "elements/swfs/expressinstall.swf", flashvars, params, attributes); // ]]>  

Y lo esencial del Código de ActionScript 3:

 _paramObj = LoaderInfo(stage.loaderInfo).parameters; theText_txt.text = _paramObj['theXML']; 

¿Cómo paso una variable PHP usando SWFObject y FlashVars?

Gracias.

Uf, necesitaba escapar de los Flash Vars y funcionó.

Para cualquiera que esté interesado, esto es lo que necesitaba cambiar

 flashvars.theXML = ; 

A esto:

 flashvars.theXML = escape(''); 

escape () no es una forma infalible de escapar (!)

Utilice encodeURIComponent () en su lugar.

Esto es del punto 9 en las preguntas frecuentes: http://code.google.com/p/swfobject/wiki/faq

  1. ¿Cómo puedo pasar URIs o código HTML como un valor usando flashvars?

Los caracteres especiales y los símbolos = y & no se pueden usar directamente dentro de los valores de flashvars (estos últimos porque se usan para astackr los flashvars).

Puede solucionar este problema escapando estos caracteres antes de pasarlos como valores flashvar. Un ejemplo:

encodeURIComponent (“& trade”) se convertirá en% 26trade

Los valores estarán disponibles en su archivo swf que ya no están codificados, por lo que no es necesario separarlos de su swf.

Tenga en cuenta que encodeURIComponent no está disponible en todos los navegadores, pero está disponible en todas las versiones modernas comunes. Si necesita compatibilidad con versiones anteriores, puede usar escape () en su lugar, pero tenga en cuenta que escape () no funciona bien con caracteres de doble byte (como el chino).

También puede escapar de estos caracteres manualmente usando:

 * %3D instead of = * %26 instead of &