Comunidad de diseño web y desarrollo en internet online

Centrar imagen en movie clip

Citar            
MensajeEscrito el 29 Mar 2007 12:56 am
hola amigos del foro mi problema es que tengo un movieclip que carga las imagenes que le indico desde un boton, como una galeria, el problema es que tengo que alinear este movieclip al centro de otro cada vez que cargo una nueva imagen y las imagenes que cargo no tienen todas las mismas dimensiones (unas son 320 x 240 pixels y las otras 240 x 320) ¿como puedo obtener el tamaño de estas imagenes una vez cargadas en el movieclip, que le daran el nuevo tamaño al moveclip, para poder usar estos valores y asi alinearla?

Por jsmedia

28 de clabLevel



Genero:Masculino  

Morrison, Cordoba, Argentina

msie
Citar            
MensajeEscrito el 30 Mar 2007 12:03 am
Hola

Para hacer eso, tenes q cargar las imagenes con la clase MovieCLipLoader. Esta clase tiene el evento onLoadInit, que se lanza una vez q se reprodujo el 1er frame de lo q se carge. En ese momento podes obtener el tamaño del movieclip.

Código :

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();

obj.onLoadInit(target:MovieClip){
  trace("el ancho es: "+target._width+" / el alto es: "+target._height);
}

mLoader.addEventListener("onLoadInit", obj);

mcLoader.load("imagen.jpg", mc);


Creo q era de esa forma... cualquier cosa chifla...

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 17 Abr 2009 04:44 pm

alfathenus escribió:

Hola

Para hacer eso, tenes q cargar las imagenes con la clase MovieCLipLoader. Esta clase tiene el evento onLoadInit, que se lanza una vez q se reprodujo el 1er frame de lo q se carge. En ese momento podes obtener el tamaño del movieclip.

Código :

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();

obj.onLoadInit(target:MovieClip){
  trace("el ancho es: "+target._width+" / el alto es: "+target._height);
}

mLoader.addEventListener("onLoadInit", obj);

mcLoader.load("imagen.jpg", mc);


Creo q era de esa forma... cualquier cosa chifla...


Este script obedece si la imagen son cargadas con XML al escenario?
Por ejm yo tengo una galeria donde la imagenes estan en una carpeta, y tengo el problema d q me cargan en la parte superior izquierda del escenario, y lo necesito al centro del area asignada a la carga d la imagen,
aki dejo el script q use:

FLA:

Código :

//Permite caracteres tradicionales como letras con tilde la ñ, etc.
System.useCodepage = true; 

//Se declara la variable indice de tipo número (utilizada para referencia la noticia a mostrar)
var indice:Number; 

//Se declara la variable noticias_xml de tipo XML (utilizada para almacenar el documento xml)
var noticias_xml:XML; 

/*
Funcion cargarDatos (utilizada para cargar y cambiar las noticias en el documento)
Esta función recibe un parámetro "_indice" que corresponde al elemento noticia  a mostrar
*/
function cargarDatos(_indice:Number){
      //Se inicializan variables utilizadas para almenar los datos de una noticia
      var año:String;
      var titulo:String;
      var tecnica:String;
      var dimension:String;
      var precio:String;
      var imagen:String;
      
      //Recuperando datos del objeto xml
      //Se accede al primer elemento [noticia] y se recupera la fecha desde el atributo [año]
      año = noticias_xml.firstChild.childNodes[_indice].attributes.año;
      
      //Se accede al primer hijo de elemento [noticia] y se recupera al valor del primer elemento de [titulo]
      titulo = noticias_xml.firstChild.childNodes[_indice].firstChild.firstChild.nodeValue;
      
      //Se accede al segundo hijo de elemento [noticia] y se recupera el valor del primer elemento de [tecnica]
      tecnica = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue
      
      //Se accede al tercer hijo de elemento [noticia] y se recupera el valor del primer elemento de [dimension]
      dimension = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.firstChild.nodeValue
      
      //Se accede al cuarto hijo de elemento [noticia] y se recupera el valor del primer elemento de [precio]
      precio = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue
      
      //Se accede al último hijo de elemento [noticia] y se recupera el valor del primer elemento de [imagen]
      imagen = noticias_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue
      
      //Mostrando los datos recuperados en el cuado de texto mensaje_txt y cargando la imagen en pantalla_mc
      _root.mensaje_txt.htmlText = "";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÍTULO:</p></font>" + titulo + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÉCNICA:</p></font>" + tecnica + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>DIMENSIÓN:</p></font>" + dimension + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>PRECIO:</p></font>" + precio + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>AÑO:</p></font>" + año + "<b></font></p>";
      //Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml
      _root.pantalla_mc.loadMovie(imagen);   
   }

//Función que permite avanzar a la [noticia] siguiente almacenada en el objeto xml
siguiente_btn.onPress = function(){   
   //comprobando si existe el siguiente elemento [noticia]
   if(noticias_xml.firstChild.childNodes[indice+1] != null){//retringue  a avanzar solo si hay una [noticia] siguiente
         indice++; //incrementado en uno el indice
         cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
         }
   }

//Función que permite retroceder a la noticia anterior almacenada en el objeto xml   
anterior_btn.onPress = function(){
   //comprobando si existe una elemento [noticia] anterior
   if(noticias_xml.firstChild.childNodes[indice-1] != null){//retringue  a avanzar solo si hay una [noticia] anterior
         indice--; //reducciendo en uno el indice
         cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
         }
   }   
   
//Inicializaciones
indice=0; //inicializando indice en 0 para mostrar la primera noticia

//creando el objeto noticias_xml de typo XML
noticias_xml = new XML();

//Permite que el objeto XML ignore los espacios en blanco entre marca y marca del documento XML
noticias_xml.ignoreWhite = true;

//El método load() permite cargar el documento xml "noticias.xml"
noticias_xml.load("emilio.xml");

//El evento onLoad de activa cuado se haya cargado el documento noticias.xml
noticias_xml.onLoad = function(){
         //Se llama a la funcion cragarDatos para mostar la primera noticia (esto por la variable indice en 0)
         cargarDatos(indice);         
   }


XML:

Código :

<?xml version="1.0" encoding="iso-8859-1"?>
<noticias>
   <noticia año="1998"> 
      <titulo>Autoretrato</titulo>
      <tecnica>Oleo</tecnica>
      <dimension>0,98 x 0,50 m</dimension>
      <precio>S/. 1200.00</precio>
      <image>emilio/imagen1.jpg</image>
   </noticia>
   
   <noticia año="2006"> 
      <titulo>Mujer en la Cama</titulo>
      <tecnica>Madera sobre madera</tecnica>
      <dimension>11,98 x 2,50 m</dimension>
      <precio>S/. 4500.00</precio>
      <image>emilio/imagen2.jpg</image>
   </noticia>
   
   <noticia año="2007"> 
      <titulo>Autoretrato con fondo morado</titulo>
      <tecnica>Oleo sobre Lienzo</tecnica>
      <dimension>5,83 x 1,47 cm</dimension>
      <precio>S/. 3200.00</precio>
      <image>emilio/imagen3.jpg</image>
   </noticia>

   <noticia año="2008"> 
      <titulo>Retrato José Rojas Vásquez</titulo>
      <tecnica>Técnica mixta sobre madera</tecnica>
      <dimension>4,00 x 9,04 cm</dimension>
      <precio>S/. 400.00</precio>
      <image>emilio/imagen4.jpg</image>
   </noticia>

</noticias>

Por edu_chan

22 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Abr 2009 05:17 pm
Mmmm

Deberia, solo q tenes q cambiar la forma en q cargas la imagen, de esto

Código ActionScript :

_root.pantalla_mc.loadMovie(imagen);  

A la forma en q se explica en el post o sea, asi:

Código ActionScript :

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadInit(target:MovieClip){
  trace("el ancho es: "+target._width+" / el alto es: "+target._height);
}
mLoader.addEventListener("onLoadInit", obj);
mcLoader.load(imagen, _root.pantalla_mc);



Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 17 Abr 2009 09:01 pm

alfathenus escribió:

Mmmm

Deberia, solo q tenes q cambiar la forma en q cargas la imagen, de esto

Código ActionScript :

_root.pantalla_mc.loadMovie(imagen);  

A la forma en q se explica en el post o sea, asi:

Código ActionScript :

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadInit(target:MovieClip){
  trace("el ancho es: "+target._width+" / el alto es: "+target._height);
}
mLoader.addEventListener("onLoadInit", obj);
mcLoader.load(imagen, _root.pantalla_mc);



Saludos!


A ver si te entendi; reemplazo el:

Código ActionScript :

_root.pantalla_mc.loadMovie(imagen);  

por el script q colocaste?, nada mas?, o hay q ordenar tu script en algun orden?, no crea problemas al cargar la imagen? porq el XML ordena q cargen de la carpeta "emilio"

Por edu_chan

22 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Abr 2009 05:04 am

alfathenus escribió:

Mmmm

Código ActionScript :

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadInit(target:MovieClip){
  trace("el ancho es: "+target._width+" / el alto es: "+target._height);
}
mLoader.addEventListener("onLoadInit", obj);
mcLoader.load(imagen, _root.pantalla_mc);

Saludos!


Hola, prob con el script modificado q me recomendaste.. pero nada, me sale error en la linea donde se halla el
obj.onLoadInit(target:MovieClip){
recomendandome q: Se espera ')' o ','

Le cambio el : del target por la dichosa coma y nada, me salen otros errores, que la fin y al cabo
me llevan al obj.onLoadInit(target:MovieClip){

aqui como puse tu script dentro del mio

Código ActionScript :

//Permite caracteres tradicionales como letras con tilde la ñ, etc.
System.useCodepage = true; 

//Se declara la variable indice de tipo número (utilizada para referencia la noticia a mostrar)
var indice:Number; 

var mLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();

//Se declara la variable noticias_xml de tipo XML (utilizada para almacenar el documento xml)
var noticias_xml:XML; 

/*
Funcion cargarDatos (utilizada para cargar y cambiar las noticias en el documento)
Esta función recibe un parámetro "_indice" que corresponde al elemento noticia  a mostrar
*/
function cargarDatos(_indice:Number){
      //Se inicializan variables utilizadas para almenar los datos de una noticia
      var año:String;
      var titulo:String;
      var tecnica:String;
      var dimension:String;
      var precio:String;
      var imagen:String;
      
      //Recuperando datos del objeto xml
      //Se accede al primer elemento [noticia] y se recupera la fecha desde el atributo [año]
      año = noticias_xml.firstChild.childNodes[_indice].attributes.año;
      
      //Se accede al primer hijo de elemento [noticia] y se recupera al valor del primer elemento de [titulo]
      titulo = noticias_xml.firstChild.childNodes[_indice].firstChild.firstChild.nodeValue;
      
      //Se accede al segundo hijo de elemento [noticia] y se recupera el valor del primer elemento de [tecnica]
      tecnica = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue
      
      //Se accede al tercer hijo de elemento [noticia] y se recupera el valor del primer elemento de [dimension]
      dimension = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.firstChild.nodeValue
      
      //Se accede al cuarto hijo de elemento [noticia] y se recupera el valor del primer elemento de [precio]
      precio = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue
      
      //Se accede al último hijo de elemento [noticia] y se recupera el valor del primer elemento de [imagen]
      imagen = noticias_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue
      
      //Mostrando los datos recuperados en el cuado de texto mensaje_txt y cargando la imagen en pantalla_mc
      _root.mensaje_txt.htmlText = "";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÍTULO:</p></font>" + titulo + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÉCNICA:</p></font>" + tecnica + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>DIMENSIÓN:</p></font>" + dimension + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>PRECIO:</p></font>" + precio + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<br><p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>AÑO:</p></font>" + año + "<b></font></p>";
      //Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml
      obj.onLoadInit(target:MovieClip){
        trace("el ancho es: "+target._width+" / el alto es: "+target._height);
      }
      mLoader.addEventListener("onLoadInit", obj);
      mcLoader.load(imagen, _root.pantalla_mc);   
   }

//Función que permite avanzar a la [noticia] siguiente almacenada en el objeto xml
siguiente_btn.onPress = function(){   
   //comprobando si existe el siguiente elemento [noticia]
   if(noticias_xml.firstChild.childNodes[indice+1] != null){//retringue  a avanzar solo si hay una [noticia] siguiente
         indice++; //incrementado en uno el indice
         cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
         }
   }

//Función que permite retroceder a la noticia anterior almacenada en el objeto xml   
anterior_btn.onPress = function(){
   //comprobando si existe una elemento [noticia] anterior
   if(noticias_xml.firstChild.childNodes[indice-1] != null){//retringue  a avanzar solo si hay una [noticia] anterior
         indice--; //reducciendo en uno el indice
         cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
         }
   }   
   
//Inicializaciones
indice=0; //inicializando indice en 0 para mostrar la primera noticia

//creando el objeto noticias_xml de typo XML
noticias_xml = new XML();

//Permite que el objeto XML ignore los espacios en blanco entre marca y marca del documento XML
noticias_xml.ignoreWhite = true;

//El método load() permite cargar el documento xml "noticias.xml"
noticias_xml.load("emilio.xml");

//El evento onLoad de activa cuado se haya cargado el documento noticias.xml
noticias_xml.onLoad = function(){
         //Se llama a la funcion cragarDatos para mostar la primera noticia (esto por la variable indice en 0)
         cargarDatos(indice);         
   }

gracias

Por edu_chan

22 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Abr 2009 03:14 pm
Hola

Mmm o sea.. hay q le leer y no solo hacer copy/paste

Pone estp

Código ActionScript :

obj.onLoadInit(target:MovieClip){ 
        trace("el ancho es: "+target._width+" / el alto es: "+target._height); 
      } 

por fuera de la funcion... o sea justo debejo donde creas la variable obj... y no solo eso... cambialo a este otro codigo

Código ActionScript :

obj.onLoadInit = function(target:MovieClip){ 
        trace("el ancho es: "+target._width+" / el alto es: "+target._height); 
      } 



Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2009 04:51 am

alfathenus escribió:

Hola

Mmm o sea.. hay q le leer y no solo hacer copy/paste
Pone estp

Código ActionScript :

obj.onLoadInit(target:MovieClip){ 
        trace("el ancho es: "+target._width+" / el alto es: "+target._height); 
      } 

por fuera de la funcion... o sea justo debejo donde creas la variable obj... y no solo eso... cambialo a este otro codigo

Código ActionScript :

obj.onLoadInit = function(target:MovieClip){ 
        trace("el ancho es: "+target._width+" / el alto es: "+target._height); 
      } 


jajaja.. da la impresion d q lo q dices fuese cierto :lol: , pues es mentira :P , no hice copy paste, si pregunto es porq ya lo probe y le di vueltas y no obtuve resultados :oops:
lo q me recomiendas aki ya lo hice puesto ke volvi a tomar el centrado d imagenes d EREB, ahi sta tal y como lo dices, pero ahora solo sale la pantalla donde cargan las imagenes mas no las imagenes...??? aun tengo dudas, tengo la sospecha d q hay un elemento en el escenario q no e creado aun... si me ekivoko corrigeme, lo malo es q no s q elemento aun no creo...
si serias tan amable d pasarme tu FLA d tu trabajo (espero no sea demasiado pedir :lol: )... tal vez comparandolo podria llegar a resolver el mio...
Muchas gracias x tomarte la molestia d responderme... y espero ya no molestar

Por edu_chan

22 de clabLevel



 

msie7

 

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