Foros del Web » Creando para Internet » Flash y Actionscript »

obtener anchura de MovieClip con MovieClipLoader

Estas en el tema de obtener anchura de MovieClip con MovieClipLoader en el foro de Flash y Actionscript en Foros del Web. Necesito ir desplazando un grupo de fotos que voy obteniendo de un .xml. Para ello necesito hallar la anchura de la foto que importo. Lo ...
  #1 (permalink)  
Antiguo 15/11/2008, 14:44
Avatar de robertereter  
Fecha de Ingreso: mayo-2008
Ubicación: Sevilla city
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta obtener anchura de MovieClip con MovieClipLoader

Necesito ir desplazando un grupo de fotos que voy obteniendo de un .xml.
Para ello necesito hallar la anchura de la foto que importo.
Lo intento sacar mediante onLoadInit(), para que le de tiempo a cargar, pero sigo obteniendo de valor 0.
Estoy empezando con AS 2.0 y no consigo resolver el problema.
Os muestro el codigo haber si me podeis indicar donde estoy fallando.

Un saludo ;).

Código:
import flash.display.BitmapData;
var miXML:XML = new XML();

var mcl:MovieClipLoader = new MovieClipLoader();
var oyente:Object = new Object();
var despl:Number = 0;
var anchural:Number = 0;
oyente.onLoadInit = function(){
	anchural = mc.width;
}
oyente.onLoadComplete = function() {
	texto.text = anchural;
	despl = despl + anchural;			
	mc._x = despl;
}

miXML.ignoreWhite = true;
miXML.onLoad = function(success){
	if (success){
		for (i = 0; i < miXML.firstChild.childNodes.length; i++){
			var mc:MovieClip = createEmptyMovieClip("rr" + i, getNextHighestDepth());
			
			mcl.addListener(oyente);
			mcl.loadClip("images/personal/"+miXML.firstChild.childNodes[i].childNodes[1].firstChild, mc);

			
		}
	}
}
miXML.load("images/personal/fotos.php");
stop();
  #2 (permalink)  
Antiguo 15/11/2008, 21:14
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: obtener anchura de MovieClip con MovieClipLoader

Hola Robertereter!

Tenías un pequeño error, te faltana el _ en la propiedad width, yo quitaría el listener del evento onComplete y lo dejaría así:

Código actionscript:
Ver original
  1. import flash.display.BitmapData;
  2. var miXML:XML = new XML();
  3.  
  4. var mcl:MovieClipLoader = new MovieClipLoader();
  5. var oyente:Object = new Object();
  6. var despl:Number = 0;
  7. var anchural:Number = 0;
  8.  
  9. oyente.onLoadInit = function(target:MovieClip):Void {
  10.     anchural = mc._width;
  11.         texto.text = anchural;
  12.     despl = despl + anchural;          
  13.     target._x = despl;
  14. }
  15.  
  16. miXML.ignoreWhite = true;
  17. miXML.onLoad = function(success){
  18.     if (success){
  19.         for (i = 0; i < miXML.firstChild.childNodes.length; i++){
  20.             var mc:MovieClip = createEmptyMovieClip("rr" + i, getNextHighestDepth());
  21.            
  22.             mcl.addListener(oyente);
  23.             mcl.loadClip("http://www.forosdelweb.com/images/personal/"+miXML.firstChild.childNodes[i].childNodes[1].firstChild, mc);
  24.  
  25.            
  26.         }
  27.     }
  28. }
  29. miXML.load("http://www.forosdelweb.com/images/personal/fotos.php");
  30. stop();

Un saludo !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 16/11/2008, 04:06
Avatar de robertereter  
Fecha de Ingreso: mayo-2008
Ubicación: Sevilla city
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Mensaje Respuesta: obtener anchura de MovieClip con MovieClipLoader

Hola Jahepi. Muchisimas gracias por responder ;).

Pues lo he probado como dices pero ahora me da undefined como resultado al querer ver la anchural por texto.text.

Lo he puesto tal y como dices.

Un saludo ;)
  #4 (permalink)  
Antiguo 16/11/2008, 05:07
Avatar de robertereter  
Fecha de Ingreso: mayo-2008
Ubicación: Sevilla city
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
De acuerdo Respuesta: obtener anchura de MovieClip con MovieClipLoader

Solucionado.
No me habia dado cuenta que habia que pasar la variable mc que pasa a la funcion onLoadInit

:D

Código:
import flash.display.BitmapData;
var miXML:XML = new XML();

var mcl:MovieClipLoader = new MovieClipLoader();
var oyente:Object = new Object();
var despl:Number = 0;
var anchuraT:Number = 0;
oyente.onLoadInit = function(mc){
	anchuraT = mc._width;
	texto.text = anchuraT;
	despl += anchuraT;			
	mc._x = -despl;
}

miXML.ignoreWhite = true;
miXML.onLoad = function(success){
	if (success){
		for (i = 0; i < miXML.firstChild.childNodes.length; i++){
			var mc:MovieClip = createEmptyMovieClip("rr" + i, getNextHighestDepth());
			mcl.addListener(oyente);
			mcl.loadClip("http://www.forosdelweb.com/images/personal/"+miXML.firstChild.childNodes[i].childNodes[1].firstChild, mc);
		}
	}
}
miXML.load("http://www.forosdelweb.com/images/personal/fotos.php");
stop();
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 22:16.