Discussion:
[OT] Socorro, por favor.
(demasiado antiguo para responder)
javiestufa
2009-02-21 20:54:40 UTC
Permalink
retomo otra vez un mensaje anterior.
Por favor, no hay ninguna manera de llamar desde un Flash a una función
javascript en el HTML?

en el HTML tengo esto que me funciona perfectamente:

<script language="Javascript">
function ocultar(nombrecapa){
document.getElementById(nombrecapa).style.visibility="hidden";
}
</script>

cómo puedo hacer para llmar a esa misma función desde el Flash desde un
onRelease de un botón?
Ya he probado en local, en servidor, con getURL con ExternalInterface... y
no hay manera de hacerlo funcionar...
No hay ninguna posibilidad? Me estoy volviendo loco? Es imposible?

Necesitaría solucionarlo, gracias.

::javier
Álvaro Vidal
2009-02-21 22:25:54 UTC
Permalink
Buenas noches,

¿Has probado usando fscommand? En AS3 no lo he probado, pero antaño es lo
que usaba para comunicarme con javascript o VB. Según veo en la ayuda en
principio con AS3 te debería funcionar...

En AS simplemente usas:

fscommand(comando, argumentos);

en tu caso podría ser:

fscommand("ocultaCapa", "nombre de la capa a poner aquí");

y en el código html en el javascript:

function miPeli_DoFSCommand(comando, arg) {
if (comando=="ocultaCapa") {
document.getElementById(arg).style.visibility="hidden";
}
}

Ten en cuenta que miPeli ha de ser el nombre de la película en el html en la
función de JS (atributo NAME de embed o propiedad ID de object)

Igualmente mírate el tema de seguridad, que con los cambios que ha habido
desde que lo usaba no se si te funcionará... a y el código te lo escribo de
memomria, quizá tenga alguna errata, si no funciona repásate la ayuda de
fscommand.

Saludos, Álvaro.
Post by javiestufa
retomo otra vez un mensaje anterior.
Por favor, no hay ninguna manera de llamar desde un Flash a una función
javascript en el HTML?
<script language="Javascript">
function ocultar(nombrecapa){
document.getElementById(nombrecapa).style.visibility="hidden";
}
</script>
cómo puedo hacer para llmar a esa misma función desde el Flash desde un
onRelease de un botón?
Ya he probado en local, en servidor, con getURL con ExternalInterface... y
no hay manera de hacerlo funcionar...
No hay ninguna posibilidad? Me estoy volviendo loco? Es imposible?
Necesitaría solucionarlo, gracias.
::javier
javiestufa
2009-02-22 09:42:01 UTC
Permalink
Gracias Alvaro, me imprimo tu respuesta y ya lo miraré para otra vez, ya que el fscommand me daba problemas con el tema de seguridad.

He conseguido resolver el problema. Os dejo aquí la solución con la que he conseguido que esto funcione (como podían haber dicho en la película: el esfuerzo, ofrecido a Jesús y bajo los efectos de unos cafés de madrugada obran milagros, seguro que llegaré a la santificación a través del trabajo, jajaja)... pero es que soy aragonés, y eso de la tozudez también se debe de notar, no?


En el ActionScript de Flash:
import flash.external.ExternalInterface;
... / ...

botonSeccion1.onRelease = function(){
ExternalInterface.call('ocultar(nombrecapa)');
... / ...
}

En el HTML:
function ocultar(nombrecapa){
document.getElementById(nombrecapa).style.visibility="hidden";
}

Además, para que se visualice correctamente debe de estar colgado en un servidor, y para poder visualizarlo correctamente en local, en la configuración del Flash Player / Parámetros de seguridad global, hay que agregar el directorio COMPLETO en donde tenemos los archivos con los que estamos trabajando, dándole la opción de "permitir siempre".

Gracias a todos los que me habéis ayudado en la duda.
Un saludo,
::javier.
javiestufa
2009-02-22 11:41:09 UTC
Permalink
Se me olvidaba una cosa mas. En el código que se genera al publicar la película de Flash, también hay que añadir la siguiente línea de código:

<param name="allowScriptAccess" value="always" />

un saludo,
::javier

Loading...