Comunidad de diseño web y desarrollo en internet online

ayuda con localconnection

Citar            
MensajeEscrito el 01 Mar 2010 10:57 pm
Hola amigos del foro, estoy tratado de comunicar 2 swf con localconnection, pongo el codigo

en el 1ro:

Código ActionScript :

var envia:LocalConnection= new LocalConnection();
envia.connect("va-numero");
function envia_num(varboton:Number):void{
   //paso el numero a enviar, que viene de cada boton
   var idnumero:Number=varboton;
   //evio el dato
   envia.send("va-numero"," envia_num", idnumero);
}
mc1.addEventListener(MouseEvent.CLICK, pasa_num1);
function pasa_num1():void{
   var varboton:Number = 1;
   envia_num(varboton);
}
   
en el 2do:   
var recibe:LocalConnection = new LocalConnection();
recibe.connect("va-numero");
function Irafotograma(idnumero):void{
gotoAndStop(idnumero);
}


lo que trato de hacer es, que cuando de click en el boton1 del 1er swf, en el 2do swf valla al primer frame, no se que estoy haciendo mal, alguie puede ayudarme porfa

Por carnicero666

Claber

156 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2010 01:55 pm
Si miras el ejemplo que viene en la ayuda, tiene un status que te ayuda a saber si conectan

Código ActionScript :

 conn.addEventListener(StatusEvent.STATUS, onStatus);
   private function onStatus(event:StatusEvent):void {
            switch (event.level) {
                case "status":
                    trace("LocalConnection.send() succeeded");
                    break;
                case "error":
                    trace("LocalConnection.send() failed");
                    break;
            }
        }


Luego no uses un nombre de conexión con guión, numero solo es un buen nombre. Finalmente mira la clase que puso Zguillez para facilitar el uso de LocalConnection en AS3 http://www.cristalab.com/ejemplos/uso-facil-de-localconnection-en-actionscript-3-con-swfconnection-c108l/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2010 03:14 pm

Por Korku

38 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 02 Mar 2010 07:06 pm

solisarg escribió:

Si miras el ejemplo que viene en la ayuda, tiene un status que te ayuda a saber si conectan

Código ActionScript :

 conn.addEventListener(StatusEvent.STATUS, onStatus);
   private function onStatus(event:StatusEvent):void {
            switch (event.level) {
                case "status":
                    trace("LocalConnection.send() succeeded");
                    break;
                case "error":
                    trace("LocalConnection.send() failed");
                    break;
            }
        }


Luego no uses un nombre de conexión con guión, numero solo es un buen nombre. Finalmente mira la clase que puso Zguillez para facilitar el uso de LocalConnection en AS3 http://www.cristalab.com/ejemplos/uso-facil-de-localconnection-en-actionscript-3-con-swfconnection-c108l/

Jorge


hola Jorge he agregado este codigo y me da el siguiente error:


Error #2044: AsyncErrorEvent no controlado: text=Error #2095: flash.net.LocalConnection no pudo invocar la función de repetición de llamada recibenum. error=ReferenceError: Error #1069: No se encontró la propiedad recibenum en flash.net.LocalConnection y no hay ningún valor predeterminado.

Por carnicero666

Claber

156 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2010 07:06 pm

solisarg escribió:

Si miras el ejemplo que viene en la ayuda, tiene un status que te ayuda a saber si conectan

Código ActionScript :

 conn.addEventListener(StatusEvent.STATUS, onStatus);
   private function onStatus(event:StatusEvent):void {
            switch (event.level) {
                case "status":
                    trace("LocalConnection.send() succeeded");
                    break;
                case "error":
                    trace("LocalConnection.send() failed");
                    break;
            }
        }


Luego no uses un nombre de conexión con guión, numero solo es un buen nombre. Finalmente mira la clase que puso Zguillez para facilitar el uso de LocalConnection en AS3 http://www.cristalab.com/ejemplos/uso-facil-de-localconnection-en-actionscript-3-con-swfconnection-c108l/

Jorge


hola Jorge he agregado este codigo y me da el siguiente error:


Error #2044: AsyncErrorEvent no controlado: text=Error #2095: flash.net.LocalConnection no pudo invocar la función de repetición de llamada recibenum. error=ReferenceError: Error #1069: No se encontró la propiedad recibenum en flash.net.LocalConnection y no hay ningún valor predeterminado.

Por carnicero666

Claber

156 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2010 07:11 pm
¿que es recibenum? No lo veo en tu code

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2010 07:30 pm

solisarg escribió:

¿que es recibenum? No lo veo en tu code

Jorge


recibenum es el nombre del metodo que recibe el numero que envio

Por carnicero666

Claber

156 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2010 07:31 pm
Postea el código como te ha quedado, porque ha cambiado respecto a tu primer post ya que allí no veo recibenum

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2010 07:35 pm

solisarg escribió:

Postea el código como te ha quedado, porque ha cambiado respecto a tu primer post ya que allí no veo recibenum

Jorge

ok en mi primer swf tengo:

Código ActionScript :

var envia:LocalConnection= new LocalConnection();
envia.connect("numero");
function envianum(numb:Number):void{
   var idnumero:Number=numb;
   envia.send("numero", "recibenum" , idnumero);
}

   
boton1.addEventListener(MouseEvent.CLICK, pasanum1);
function pasanum1(e:Event):void{
   var numaenviar:Number = 1;
   envianum(numaenviar);
   }


En mi segundo swf que es receptor tengo:

Código ActionScript :

var recibe:LocalConnection = new LocalConnection();
recibe.connect("numero");
recibe.client=this;
function recibenum(num:Number){
this.gotoAndStop(num);
}


lo que quiero hacer es controlar el timeline del 2do. swf con los botones que tengo el 1er swf

Por carnicero666

Claber

156 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Abr 2011 09:40 am
Buenas, yo tengo el mismo problema, nos podeis ayudar?

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Abr 2011 10:04 am
os pongo mi caso, aprobechando el código de solisarg puse en el swf 1.

Código ActionScript :

// enviamos la variable y recibiremos el tipo de pelo//

var envia:LocalConnection= new LocalConnection(); 
envia.connect("numero"); 
function envianum(numb:Number):void{ 
   var idnumero:Number=numb; 
   envia.send("numero", "recibenum" , idnumero); 
} 


boton_btn.addEventListener(MouseEvent.CLICK, peinado);
function peinado(e:MouseEvent){
   
var numaenviar:Number = 1; 
  envianum(numaenviar);



var holder:Loader = new Loader() 
holder.load(new URLRequest("pelo.swf")) 

addChild(holder) 
}

boton2_btn.addEventListener(MouseEvent.CLICK, peinado2);

function peinado2(e:MouseEvent){
   

var numaenviar:Number = 2; 
  envianum(numaenviar);


var holder2:Loader = new Loader() 
holder2.load(new URLRequest("pelo.swf")) 
addChild(holder2) 
}



y en el otro swf tengo 

 
package {
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.net.*;
    import flash.system.*;
  // import mx.controls.Alert;
    //[SWF(width="465", height="465")]
    public class Main extends MovieClip {
      
      var pelo:Number=0;
      
      var recibe:LocalConnection = new LocalConnection(); 
recibe.connect("numero"); 
recibe.client=this; 
function recibenum(num:Number){ 
pelo=num;
 
}
      
      
        public function Main() {
         
//Creamos el objeto tipo LocalConnection
           
      
    // image
         
         if (pelo==0){
            null
         }
         if (pelo==1){ 
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoad);
            loader.load(new URLRequest("pelo1.png"), new LoaderContext(true));
         }
         if (pelo==2){
          var loader2:Loader = new Loader();
            loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoad);
            loader2.load(new URLRequest("pelo2.png"), new LoaderContext(true));
         }


Es la primera vez que posteo aqui, no se como se hace para que él cocigo salga amarillo.

Bueno os comento que el segungo swf está en una clase, si a pelo le pongo 0, 1, 2 y guardo si lo hace correcto. pero no consigo pasarle la variable bien desde el swf para que haga la llamada a 1 o 2 segun de al boton 1 o al 2,
posteo lo que me dice cuando publico.

Error #2044: AsyncErrorEvent no controlado: text=Error #2095: flash.net.LocalConnection no pudo invocar la función de repetición de llamada recibenum. error=ReferenceError: Error #1069: No se encontró la propiedad recibenum en flash.net.LocalConnection y no hay ningún valor predeterminado.


gracias de anteamno.

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Abr 2011 10:06 am
¿es posible porque la programación del swf este dentro de una clase?

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Abr 2011 01:49 pm
¿La clase Main es el document class?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Abr 2011 02:39 pm
si jorge, la clase Main es el document class, pero toque el código y ahora me sale un error distinto, lo he posteado en un nuevo post, creo que está mejor explicado que este.
gracias de antemano.

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Abr 2011 02:54 pm
Está mal declarado el método y el LocalConnection lo conectas en el cuerpo de la clase, considera algo así>

Código ActionScript :

var recibe:LocalConnection
  public function Main() { 
         recibe = new LocalConnection();  
         recibe.connect("numero");  
         recibe.client=this;  
         (...)
  }
  public function recibenum(num:Number){  
     pelo=num; 
     //aqui todo el condicional que tenías en el constructor
  } 


Luego todo el condicional del pelo lo tienes que mover a recibenum

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2011 07:14 am
Hola jorge, como me dijiste esto es lo que he puesto en el swf 2

Código :



import flash.net.LocalConnection;
  // import mx.controls.Alert;
    //[SWF(width="465", height="465")]
    public class Main extends MovieClip {
      
//Creamos el objeto tipo LocalConnection

var conexion:LocalConnection 
  public function Main() {  
         conexion = new LocalConnection();   
         conexion.connect("numero");   
         conexion.client=this;   
 
}

 public function recibenum(num:Number){   
    // var pelo:Number=2;
    pelo=num;  
    
    
     //aqui todo el condicional que tenías en el constructor 
    if (pelo==0){
            null
         }
         if (pelo==1){ 
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoad);
            loader.load(new URLRequest("pelo1.png"), new LoaderContext(true));
         }
         if (pelo==2){
          var loader2:Loader = new Loader();
            loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoad);
            loader2.load(new URLRequest("pelo2.png"), new LoaderContext(true));
         }
}


y en el swf 1 tegno esto

Código :



import flash.net.LocalConnection;

// enviamos la variable y recibiremos el tipo de pelo//

   var envia:LocalConnection= new LocalConnection(); 
envia.connect("numero"); 
function envianum(numb:Number):void{ 
   var idnumero:Number=numb; 
   envia.send("numero", "recibenum", idnumero); 
  
}

 var numaenviar:Number = 0; 



boton_btn.addEventListener(MouseEvent.CLICK, peinado);
function peinado(e:MouseEvent){
   

numaenviar=1;
  envianum(numaenviar);


var holder:Loader = new Loader() 
holder.load(new URLRequest("pelo.swf")) 

addChild(holder) 
}

boton2_btn.addEventListener(MouseEvent.CLICK, peinado2);

function peinado2(e:MouseEvent){
   

numaenviar=2;
envianum(numaenviar);


var holder2:Loader = new Loader() 
holder2.load(new URLRequest("pelo.swf")) 
addChild(holder2) 
}


sigue diciendome el mismo error, y no se donde esta fallando puesto que la funcion recibenum ya esta colocado bien, creo

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 14 Abr 2011 07:18 am
Jorge este el fallo que me da

Error #2044: AsyncErrorEvent no controlado: text=Error #2095: flash.net.LocalConnection no pudo invocar la función de repetición de llamada recibenum. error=ReferenceError: Error #1069: No se encontró la propiedad recibenum en flash.net.LocalConnection y no hay ningún valor predeterminado.
ArgumentError: Error #2082: La conexión falló porque el objeto ya está conectado.
at flash.net::LocalConnection/connect()
at Main()

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 14 Abr 2011 10:18 am
Muevelo lo del LocalConnection de la clase al timeline y prueba de nuevo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2011 10:57 am
no puedo hacerlo, tiene que ser dentro de la clase, pues intente sacarlo todo del paquete para ponerlo en linea de tiempo pero me da fallo en otra clase, me decia que no estaba anidada, asi que la unica forma para poder resolverlo era crear un loadmovie y enviarle las variables para que cogiera una imagen u otra.

muchas gracias.

Por jsgjavi

21 de clabLevel



 

safari
Citar            
MensajeEscrito el 14 Abr 2011 11:55 am
No, mirando la documentación se puede, pero veo que no estás muy ducho con las clases, y se mezclan errores que no tienen nada que ver con LC sino con sintaxis básica.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2011 12:22 pm
seguro que es una tonteria, el sacarlo de un paquete y ponerlo en linea de tiempo pero macho lo vi complicado, ya que estoy empezando en as3, el ejemplo que queria sacar del paquete y poner en linea de tiempo estaba en esta página.

http://wonderfl.net/c/vBEV

Por jsgjavi

21 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.