Foros del Web » Creando para Internet » Flash y Actionscript »

Flash Frames y HTML

Estas en el tema de Flash Frames y HTML en el foro de Flash y Actionscript en Foros del Web. mi duda es la sig... Como hago para controlar o accesar a ciertos frames de mi SWF desde un link en HTML, osea que al ...
  #1 (permalink)  
Antiguo 26/05/2004, 16:29
 
Fecha de Ingreso: diciembre-2003
Ubicación: Tijuana, Mex.
Mensajes: 22
Antigüedad: 20 años, 3 meses
Puntos: 0
Flash Frames y HTML

mi duda es la sig...

Como hago para controlar o accesar a ciertos frames de mi SWF desde un link en HTML, osea que al dar click en una link el usuario lo mande a cierto frame de mi pelicula, se podra? me imagino que con javascript o algo asi, pero como tomo los valores??, alguien sabe como?? mil gracias..

Pakz
  #2 (permalink)  
Antiguo 28/05/2004, 11:50
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Luego te transcribo un tutorial que encontré en algún lado, aunque te advierto que no funciona en I.E. de MAC.
Lo que si funciona en cualquier plataforma es pasarle variables a un swf a través de la url usando php. Para esto tienes que meterte en el html que contiene el swf y modificar el código que se encuentra entre las etiquetas object. Te quedaría algo así:
<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="550" HEIGHT="400" id="busca" ALIGN="">
<PARAM NAME=movie VALUE="busca.swf?encontrado=<?php echo $_GET['encontrado'];?>"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="busca.swf?encontrado=<?php echo $_GET['encontrado'];?>" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="busca" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
Donde"encontrado" es el nombre de la variable que recibirá flash (que puede ser un nombre o número de fotograma, un texto dinámico, o lo que quieras enviar desde php.)
Si no, lo que te dije antes, que no recuerdo de qué tutorial lo saqué y que efectivamente usa javascript:
"...Ya sabemos entonces como hacer correr una funcion de javascript, ahora vamos un paso adelante y veamos como hablar desde java script a flash.
La idea es sencilla, usar java script para modificar variables de una pelicula flash; cabe señalar que java script puede acceder a varias propiedades y variables de una pelicula, su número de fotograma, pararla, volverla a hacer correr, rebobinarla, etc.

En nuestro caso vamos a cambiar el valor de una variable (que es un campo de texto dinámico) que tomará el contenido de un campo de texto html. El java script a usar esta tomado de Ilya Rudev (www.polar-lights.com) pero modificado para hacerlo más sencillo (su ejemplo está para uso de capas en html). Ojo, lo hemos modificado para que sea funcional solo en IE.

Lo primero que haremos es hacer un sencilla película con un nombre de campo de texto dinámico (imprescindible), nada más.
Teniendo esto nos toca ir a la parte de java script que es lo que hace todo.

Mucho ojo, cada elemento de la página html tiene que tener nombre para que pueda funcionar. Java script es como AS: para poder manejar los elementos y acceder a ellos, tienen que estar con nombre (name). Asi que vamos a ello.

Vamos a crear un Form y un campo de texto, ambos con nombre, el codigo html seria algo asi:

<form name="forma">
<input type="text" name="campo" value="escribe algo">
<a href="javascript:send2Splash();">envia </a>
</form>

Como ves ambos tienen nombre, el form se llama "forma" y el campo de texto se llama "campo".

Ahora vamos al java script:

<SCRIPT LANGUAGE="JavaScript1.2">
var ie=(document.all);
var w3=(document.getElementById && !ie);

function send2Splash(){
//creamos una variable que almacena el valor del campo de texto
//contenido en el campo del formulario
var4flash = document.forms["forma"].campo.value;
//si los elementos de la pagina (en IE u otro navegador) estan presentes (ya cargados)...
if (ie||w3) {
//accedemos a la variable del elemento "script" de la página (en este caso nuestra pelicula
//flash y su variable "aviso" (en nuestro caso el nombre del campo de texto dinámico, toma
//el valor de la variable "var4flash" que contiene lo que esta en el campo de texto de la
//pagina web, no de la pelicula flash por si las dudas.
document.script.SetVariable("aviso",var4flash);
}
}
</script>

Colocado éste script en el HEAD de la página, ahora tenemos que tener cuidado de nombrar el swf, en la etiqueta EMBED del swf colocamos el nombre:

<embed src="script.swf" quality=high
pluginspage="http://www.macromedia.com/
shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash"
width="550"
height="400"
name="script">

Como ves sólo manejamos en el javascript, el nombre del FORM, el nombre de la caja de texto del html, el nombre del swf y el nombre de la caja de texto del swf. Nada difícil si se entiende la idea. Y para hacer el pase de lo escrito a la pelicula flash usamos un sencillo llamado desde un link:

<a href="javascript:send2Splash();">envia </a>

Las posibilidades de interactuación son muchas, dependiendo de qué cosas quieras lograr..."

Bueno, espero que te sirva.

http://www.disegnocentell.com.ar
  #3 (permalink)  
Antiguo 28/05/2004, 12:30
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Me doy cuenta de que no fui claro antes, por eso agrego lo sigte:
en la explicación en la que el swf recibía la variable, el mismo debía estar incrustado en una página php, y recibir la variable de cualquier página, incluso html, que contuviera el sigte enlace: <a href="lapaginaquetieneincrustadoelswf.php?encontra do=lavariablequequieroenviar">enviar variable</a>
Saludos.
http://www.disegnocentell.com.ar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.