llamar a una funcion flash desde javascript
4 seguidores
Wenas, camaradas.
Necesito saber si existe un método para poder llamar a una función dentro un flash desde un enlace con javascript en el HTML que lo contiene.
Sé que existen métodos de javascript como Rewind(), GoToFrame() o SetVariable(var). Pero habrá algún método para llamar a una función creada (myFunction() por ejemplo)?
A ver si lo sabeis, almas caritativas. Dios os bendiga (aaaay, aaaay).
Usuario desconocido
pues con esos comandos ya lo tienes....
haz un javascript que vaya al frame X de tu peli, y en dicho frame llama a la función que quieres que se ejecute...
http://www.permadi.com/tutorial/flashjscommand/
karonte
ole! :D
juandelgado
Qué peyote eres Karonte!
https://www.domestika.org/foros/viewtopic.php?t=25135
http://www.e-tonilopez.com/after-hours/phpBB2/viewtopic.php?t=407
Es que no me puedo ir 2 días! : )
xrv
karonte, tu posteas en yonkis? o lo hacias...?
karonte
XrV
karonte, tu posteas en yonkis? o lo hacias...?
pos no...
karonte
Zárate
Qué peyote eres Karonte!
https://www.domestika.org/foros/viewtopic.php?t=25135
http://www.e-tonilopez.com/after-hours/phpBB2/viewtopic.php?t=407
Es que no me puedo ir 2 días! : )
Los que currais en Vector apestais a saco!! ñ_ñ
Por cierto, dedícate a esar de vacaciones...
ozke
Puedes hacerlo con miles de maneras, si usas el SetVariable, puedes tener un watch que mire esa variable, actúe, y luego devuelva la variable a un estado de letargo.
Incluso pongamoslo a lo cutre y poco optimo, podrías tener un movieclip con un enterFrame que detecte el valor del cambio de variable y llame la función.
Dejo un listado de comandos, lo dejo en lugar de solo direccionarlo por si alguien lo busca a traves de BUSCAR de DMSTK
<code>Método Explicación Ejemplo
Pelicula.Back()
Regresa un frame atrás la película
Pelicula.Back();
Pelicula.CurrentFrame() (Solo lectura)
Devuelve la posición actual de la cabeza de lectura en la línea de tiempo
Variable=Pelicula.CurrentFrame();
Pelicula.FlashVersion()
Regresa como valor la versión del plugin de Flash instalada
Variable= Pelicula.FlashVersion();
Pelicula.Forward()
Avanza un frame en la película
Pelicula.Forward();
Pelicula.FrameLoaded (FrameNum)
Devuelve un valor booleano(True o False) que dice si esta o no cargado el frame especificado por parámetro
Var=Película.FrameLoaded(1);
Pelicula.GetVariable(name)
Obtiene el valor de una variable
Var=Pelicula.GetVariable(campotexto);
Pelicula.GotoFrame(FrameNum)
Lleva la cabeza de lectura al frame especificado
Pelicula.GotoFrame(5);
Pelicula.IsPlaying
Booleano que indica si esta o no en ejecución la película Var=
Pelicula.IsPlaying();
Pelicula.LoadMovie(layer,url)
Carga una película en la película igual que la instrucción loadMovie de Flash
Pelicula.LoadMovie(1,movie.swf)
Pelicula.PercentLoaded
Devuelve el porcentaje cargado de la película
Var= Pelicula.PercentLoaded();
Pelicula.Play
Inicia el movimiento de la cabeza de lectura
Pelicula.Play()
Pelicula.Rewind
Rebobina la película hasta el primer frame
Pelicula.Rewind();
Pelicula.SetVariable("nombre",valor)
Asigna un valor a una variable
Pelicula.SetVariable("patos",5)
Pelicula.SetZoomRect(left,top,right,bottom)
Ajusta el zoom de la película de acuerdo a unas coordenadas
Pelicula.SetZoomRect(50,75,100,50)
Pelicula.Stop
Para la película
Pelicula.Stop();
Pelicula.TCallFrame(target,FrameNum)
Llama el código que hay en un frame determinado de una instancia
Pelicula.TCallFrame("_root",5);
Pelicula.TCallLabel(target,label)
Lo mismo que el anterior pero con el label del frame en vez del numero
Pelicula.TCallLabel("_root","funciones");
Pelicula.TCurrentFrame(target)
Obtiene el frame en el que esta la cabeza de lectura actualmente de una instancia
Var=Pelicula.TCurrentFrame("_root.pato_mc");
Pelicula.TCurrentLabel(target)
Lo mismo que el anterior pero devuelve el nombre del label del frame actual
Var=Pelicula.TCurrentLabel("_root");
Pelicula.TGetProperty(target,property)
Devuelve el valor de la propiedad de un movie clip
Var=Pelicula.TGetProperty("movie_mc",_alpha);
Pelicula.TSetProperty(target,property,value)
Asigna un valor a la una propiedad de un movie clip
Pelicula.TSetProperty("movie_mc,_alpha,50)
</code>
Quizás usaría un call :?
ozke
Mmmm, alguien sabe pq puede no ir bien en firebird estas funciones?
karonte
ozke
Mmmm, alguien sabe pq puede no ir bien en firebird estas funciones?
Por que está bien programado XDDD
ozke
Nserio, se puede, pero nose que falla
karonte
Yo he probado unas cuantas y todas me funcionan bien.
Creo que el problema es que tienes que poner el id del mismo nombre que el SWF.Es decir, tu peli "paquito.swf" tiene que ir en el object de id="paquito"
Yo probé a cambiar el i y Morcilla no lo reconoce, pero iE sí.
Usuario desconocido
pa qué reinventar la rueda:
http://www.permadi.com/tutorial/flashjscommand/
probad las funciones de este tuto, a mi en Morzilla Firefox 0.8 y Netscape 7.1 va bien, y fue escrito en el 2000, desde FlashPlayer 4 (pa rriba)
Darle a ver código, el amigo permadi lo que ha hecho es declararlas en Javascript, y flash solo llama a las funciones( esto ya es un suponer, no he visto el fla) en un get url javascript:mifuncion().
<code>
<SCRIPT LANGUAGE="JavaScript">
<!--
// F. Permadi May 2000
function getFlashMovieObject()
{
if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{
return window.flips;
}
else
{
return window.document.flips;
}
}
function StopFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.StopPlay();
}
function PlayFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.Play();
}
function RewindFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.Rewind();
}
function NextFrameFlashMovie()
{
var flashMovie=getFlashMovieObject();
// 4 is the index of the property for _currentFrame
var currentFrame=flashMovie.TGetProperty("/", 4);
var nextFrame=parseInt(currentFrame);
if (nextFrame>=10)
nextFrame=0;
flashMovie.GotoFrame(nextFrame);
}
function ZoominFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.Zoom(90);
}
function ZoomoutFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.Zoom(110);
}
function SendDataToFlashMovie()
{
var flashMovie=getFlashMovieObject();
flashMovie.SetVariable("/:message", document.controller.Data.value);
}
function ReceiveDataFromFlashMovie()
{
var flashMovie=getFlashMovieObject();
var message=flashMovie.GetVariable("/:message");
document.controller.Data.value=message;
}
//-->
</SCRIPT>
</code>