Foros del Web » Programando para Internet » Javascript »

Enviar variable a Flash.swf

Estas en el tema de Enviar variable a Flash.swf en el foro de Javascript en Foros del Web. Buenas.. Necesito enviar datos a un archivo flash, obtengo el objecto perfectamente pero de ahi en mas no se que hacer en la parte de ...
  #1 (permalink)  
Antiguo 09/05/2009, 19:29
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Enviar variable a Flash.swf

Buenas..

Necesito enviar datos a un archivo flash, obtengo el objecto perfectamente pero de ahi en mas no se que hacer en la parte de JavaScript.

Gracias de ante mano
  #2 (permalink)  
Antiguo 09/05/2009, 21:03
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

No pues necesitas darnos más info, por que así como está la pregunta no hay ni como ayudarte. Por que no te lees mientras la documentación sobre external Interface, puede que hasta se te aclaren las dudas.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 09/05/2009, 23:26
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Enviar variable a Flash.swf

Mi problema es que no puedo enviar la variable al .swf... no se ejecuta el addCallback

Código actionscript:
Ver original
  1. ExternalInterface.addCallback('wData', this.Notice);
  2.  
  3. public function Notice(str:String)
  4. {          
  5.     this.Request=new URLRequest('http://localhost/root/scripts/upload.php');
  6.            
  7.     this.Vars=new URLVariables();
  8.     this.Vars.Data=str;
  9.     this.Request.data=this.Vars;
  10.            
  11.     this.Request.method=URLRequestMethod.POST;
  12. }

Código HTML:
Ver original
  1. <object id="SW:UpLoader" type="application/x-shockwave-flash" data="/Root/Scripts/test.swf" width="91" height="91" style="float: left; margin-bottom: 15px;">
  2.           <param name="movie" value="test.swf"/>
  3.           <param name="quality" value="high"/>
  4.           <param name="allowScriptAccess" value="always"/>

Código javascript:
Ver original
  1. function getFlashMovieObject(SW)
  2. {
  3.     if (window.document[SW]) return window.document[SW];
  4.     else if (NS) return document.getElementById(SW);
  5.     else return document.embeds[SW];
  6. }
  7.  
  8. var SW=getFlashMovieObject('SW:UpLoader'); SW.SetVariable('wData', 'Hola');

Anda perfecto el codigo, exceptuando por la parte del addCallback o.. el SetVariable, no se :/
Si ejecuto Notice fuera del addCallback, anda perfecta la parte de AS.

Saludos
  #4 (permalink)  
Antiguo 10/05/2009, 14:49
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

Fijate que el segundo parámetro de addCallback tiene que ser el objeto para al que quieres que this apunte, mientras que la definición a la función que quieres registrar mediante addCallback va en el tercer parámetro. En otras palabras, estas olvidando el segundo parámetro. Asegurate tambíen de estar importando la clase external, de otro modo no te va a funcionar.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 10/05/2009, 21:29
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Enviar variable a Flash.swf

1137: Número de argumentos incorrecto. No se esperaba más de 2. Flash

SW.SetVariable is not a function este es el problema.. directamente no manda la variable...

Obtengo el objeto, de hecho

Código javascript:
Ver original
  1. <script>var SW=getFlashMovieObject('SW:UpLoader'); alert(SW.id); SW.SetVariable('wData', 'Hola');</script>
esto me tira el ID en el alert perfectamente... el unico problema es el envio de la variable
  #6 (permalink)  
Antiguo 10/05/2009, 23:35
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

Intenta de esta manera:

Código javascript:
Ver original
  1. function getId(id){
  2.      return document.getElementById(id);
  3. }
  4.  
  5. Uploader = getId('SW:Uploader");
  6. Uploader.wData('Hola');

Realmente no se por que estás usando SetVariable, creo que no has entendido bien su funcionamiento.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 11/05/2009, 08:17
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Enviar variable a Flash.swf

Código javascript:
Ver original
  1. var SW=document.getElementById('SW:UpLoader'); SW.wData('Hola');

SW.wData is not a function

Estoy usando SetVariable porque en la mayoria de los ejemplos que veo lo utilizan pero es el mismo caso con el nombre de la variable como funcion, o sea, son funciones que no existen en JS, como las usan...? no se la verdad porque no existen...
  #8 (permalink)  
Antiguo 11/05/2009, 13:28
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

Asegurate que de hacer la llamada a la funcion una vez que la pagina haya cargado.
__________________
twitter: @imbuzu
  #9 (permalink)  
Antiguo 11/05/2009, 15:28
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Enviar variable a Flash.swf

Si, si me tira el id, tiene que andar, pero no existe, veo ejemplos, gente que me trata de ayudar, pero... no anda, o sea, no es que yo tengo una "version loca" de javascript. Ya no se que pasa, porque esta todo perfecto el script, probe de todas las maneras que vi, y me sigue tirando "is not a function".
  #10 (permalink)  
Antiguo 11/05/2009, 16:14
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

1)Asegurate que tengas esto:
import flash.external.*;
Al inicio.
2) Ya te lo habia dicho, ExternalInterface lleva tres parametros. Hazlo así:
ExternalInterface.addCallback('wData', null, this.Notice);

Yo acabo de hacer unas pruevas, tal como lo tienes no anda, me da el mismo error que a ti, pero cuando le pongo el null en addCallback, funciona.

Saludos
__________________
twitter: @imbuzu
  #11 (permalink)  
Antiguo 11/05/2009, 20:13
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Enviar variable a Flash.swf

En AS 3.0 son 2 parametros nada mas, sino tira esto

1137: Número de argumentos incorrecto. No se esperaba más de 2.

El problema esta en JS

SW.wData is not a function


Saludos y gracias buzu por el tiempo
  #12 (permalink)  
Antiguo 11/05/2009, 21:14
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Enviar variable a Flash.swf

ah... pus si, si yo estoy hablando de AS 2.0. Yo deje de usar Flash, por lo que de AS 3.0 no se mucho, pero mira este enlace que quizá te ayude:
http://livedocs.adobe.com/flash/9.0/...Interface.html
Estoy seguro de que te falta algo o de que estás llamando la función en el momento no adecuado, a mi no me dio problema alguno, con AS 2.0 claro.
__________________
twitter: @imbuzu
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 04:30.