Comunidad de diseño web y desarrollo en internet online

loader y 2 addchild

Citar            
MensajeEscrito el 13 May 2009 03:20 pm
hola buenas pues resulta que tengo el siguiente codigo:

Código :

var carga:Loader = new Loader(); // Creamos el contenedor de carga
carga.load(new URLRequest(direccion_foto)); // Le damos el archivo a cargar
carga.contentLoaderInfo.addEventListener(Event.COMPLETE, completado); 

function completado (e:Event){
   var bitmap = carga.content as Bitmap;
   bitmap.smoothing = true;
   ancla1.addChild(carga);
   ancla2.addChild(carga);
   
   ancla1.height          = stage.stageHeight - 50;
   ancla2.height          = stage.stageHeight - 50;
   
   ancla1.width         = width_Dr * (ancla1.height / height_Dr);
   ancla2.width         = width_Dr * (ancla2.height / height_Dr);
   
   ancla1.x             = (finalWidth - ancla1.width)/2;
   ancla2.x            = (finalWidth - ancla2.width)/2;
   
   if (primeraVez){
      TweenLite.to(ancla1, 1, {alpha:1});
      TweenLite.to(ancla2, 1, {alpha:1});
   }

}


Y el problema que tengo es que solo me pega el segunda addchild... el primer no me lo hace. Sabeis por que puede ser? un saludo y gracias

Por n0ldor

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 03:56 pm
Hola!!
Tu problema radica en que un objeto no puede tener dos parents ambos addChild funcionan.

Dejame ver si me puedo explicar tengo una "pelota" y dos cuadrados "c1" y "c2" yo le doy:

Código ActionScript :

c1.addChild(pelota);//pelota se visualiza dentro de c2
c2.addChild(pelota);//pelota estaba dentro de c1 pero ahora le ordeno meterse a c2
//entonces pelota entra a c2


Lo que tu quieres es tener dos pelotas una para cada contenedor create dos :)

Espero te sirva.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 04:58 pm
Es que yo queria que me cargara los dos a la vez puesto que es una imagen que carga del exterior para hacer una transicion de varias fotos...

Por n0ldor

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 05:27 pm
No puedes tener dos imagenes cargala dos veces ya estara en cache no tardara nada la segunda vez.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 05:38 pm
Mira como prueba hice esta clasesita:

Código ActionScript :

package{
   import flash.display.*;
   import flash.events.*;
   import flash.net.URLRequest;
   
   public class Cargador{
      
      public var imagen:MovieClip=new MovieClip();//Contenedor para la imagen
      var img:Bitmap;//imagen Cargada
      
      
   //Recibo de parametro la direccion de la imagen a cargar   
   public function Cargador(url:String){
      var loader:Loader=new Loader();
      loader.load(new URLRequest(url))
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE,Completa);
      }
      
   public function Completa(e:Event){
      //Una vez cargada la agrego a mi contenedor
      img=e.target.content as Bitmap;
      img.smoothing=true;
      imagen.addChild(img);
      }   
   
   }
}



Desde mi linea de tiempo la utilizo asi:

Código ActionScript :


import Cargador;

//Creo mis dos imagenes mandando su url (quier dos iguales por eso mando la misma url)

var img1:Cargador=new Cargador("Colinas azules.jpg");
var img2:Cargador=new Cargador("Colinas azules.jpg");


//c1 y c2 son dos movieclips que tengo en escena
//agrego imagen que es el contenedor de imagenes de mi clase Cargador ;)
c1.addChild(img1.imagen);
c2.addChild(img2.imagen);


Ojala te sirva de algo. Saludos!!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2009 06:29 am
En lugar de cargarla dos veces, también puedes crearte un nuevo objeto Bitmap en base al bitmapData del origen

Código ActionScript :

   var bitmap = carga.content as Bitmap;
   bitmap.smoothing = true;
   var carga2:Bitmap=new Bitmap(bitmap.bitmapData.clone(),,true) //<--creamos una copia
   ancla1.addChild(carga);
   ancla2.addChild(carga2);

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2009 04:39 pm
:o Muchas gracias siempre algo se viene a aprender :P

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2009 07:41 am
Muchas gracias, no pude entrar antes, lo probaré hoy ;)

Por n0ldor

55 de clabLevel



 

firefox

 

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