Buenas,
pues eso. Sé que flash se puede comunicar con js pero a la inversa se puede?
concretamente desde una función js indicar a un mc que salte a un fotograma concreto, o llamar a una función en flash enviando un parámetro.
Gracias
| ||||
Llamar a una funcion desde JavaScript en Flash, asi tal cual no se puede... Lo que se puede hacer es mediante Javascript setear una variable en el SWF.. Ejemplo En tu funcion de Javascript pones algo asi:
Código:
document es la ruta hacia donde esta tu SWF, ya sea que tengas frames etc etc por lo general es sobre el mismo documento y, "tuMovie" es el id que asignas al objeto en tu codigo HTMLfunction algo(){ document.tuMovie.SetVariable("_level0.NombreDeVariable","Valor"); }
Código:
Ahora en tu SWF debes poner un verificador, que cuando la variable "NombreDeVariable" exista o contenga algun valor en especifico ejecute una funcion...<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" id="tuMovie" WIDTH="x" HEIGHT="x"> algo asi
Código:
this.onEnterFrame = function() { if (_root.NombreDeVariable != undefined) { //Hago referencia a _root por que desde Javascript seteamos la variable en level0 que es lo mismo que root. done(); delete this.onEnterFrame; } }; function done() { trace("El valor de la variable es "+_root.NombreDeVariable); } |
| ||||
Oye, macanudo me sirve el poder cambiar el valor de una variable, dejo al mc escuchando cambios y listos. Ahora bien, me encuentro con un inconveniente, a ver si se puede solucionar; resulta que funciona excelente en explorer 6.0/5.0 y mozilla 1.7 pero en cambio en firefox 1.0.4 y en opera 8.0 no reconocen la función SetVariable() Cita: Eso Opera y Firefox dice:
Iniciado por Opera8.0 Event thread: click Error: name: TypeError message: Statement on line 1: Type mismatch (usually a non-object value used where an object is required) Backtrace: Line 1 of script document.prueba.setVariable("_level0.fotograma", "3"); At unknown location [statement source code not available] Cita: Osea, lo mismo pero más breve.
Iniciado por Firefox 1.0.4 Error: document.prueba.SetVariable is not a function ¿Tiene que ver con la versión del plug-in instalada para el navegador? Lo curioso es que tanto el FF como el opera son más recientes que el mozilla. ¿Alguna idea? Muchas gracias Tmeister p.d. me olvidaba, estoy usando el flashMX, aunque no sé si tenga que ver |
| ||||
En cuanto a opera no se, ese navegador nunca me ha gustado ni me gustar. =) asi que me reserve el derecho a hacer pruebas en el :P:P En cuanto a Firefox utilizo la version 1.0.4 y todo va bien asi como en el Explorer... Contenedor del SWF Código HTML: <html> <head> <title>Flash & Javascript</title> <script language="javascript"> <!-- function putVar(){ target = document.jsFla; target.SetVariable("_level0.miVar","Yeap =)"); } --> </script> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="jsFla" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="jsFla.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="jsFla.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="jsFla" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> <a href="javascript:putVar();">Pon variable</a> </body> </html> Código PHP: y funciona bien.... |
| |||
Quisiera hacer algo similar, la única diferencia es que el link que carga la función para mandar la variable al movie se encuentra en un iframe, y en este ejemplo, la función se define como:
Código:
donde document es la ruta hacia donde esta el SWF.document.tuMovie.SetVariable("_level0.NombreDeVariable","Valor"); Mi problema es que la ruta, el documento donde está mi SWF no es el mismo donde está el link que carga la función. Como es que arreglo esto? gracias
__________________ ratamaster |