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

Nombre compuesto por texto + variable

Estas en el tema de Nombre compuesto por texto + variable en el foro de Flash y Actionscript en Foros del Web. Hola a todos! Tengo un problemilla que no puedo resolver de ninguna manera... a ver si me podéis ayudar: En un clip tengo lo siguiente: ...
  #1 (permalink)  
Antiguo 04/04/2006, 10:07
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Mensaje Nombre compuesto por texto + variable

Hola a todos!

Tengo un problemilla que no puedo resolver de ninguna manera... a ver si me podéis ayudar:

En un clip tengo lo siguiente: un bucle for que crea movieclips dinamicamente con duplicateMovieClip. A cada movieclip le da este nombre this['sqr'+i].
Cada uno de estos movieclips carga una imagen, así que creo otro movieclip this['cargador'+i] para controlar la carga.
El problema es que no sé cómo apuntar a this['sqr'+i] desde cada movieclip cargador:
Código:
this['cargador'+i].onEnterFrame = function(){
  if(this['sqr'+i].getBytesLoaded() >= this['sqr'+i].getBytesTotal()){
   trace("cargado");
  }
}
Pero esto NO funciona.

Muchas gracias por adelantado!!!
  #2 (permalink)  
Antiguo 04/04/2006, 10:57
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 12 años, 9 meses
Puntos: 0
si sqr y cargador se encuentran en el mismo nivel
Código:
this['cargador'+i].onEnterFrame = function(){
  if(this._parent['sqr'+i].getBytesLoaded() >= this._parent['sqr'+i].getBytesTotal()){
   trace("cargado");
  }
}
al poner:

if(this['sqr'+i].getBytesLoaded()

this hace referencia al MC donde se ejecuta, en este caso ya no es fotograma donde escribes el codigo, sino: ['sqr'+i]

por eso puedes usar _parent para retroceder al mismo nivel

cómo propagas el contador: i ?
dentro de:
this['cargador'+i].onEnterFrame
esa variable : i ya se ha perdido

lo que puedes hacer para capturar el contador i
es tomarlo del nombre
como los nombre son
cargador1
cargador2
cargador3
...

notamos que a partir del octavo caracter es la variable i
y para tomar aquello sería:

nombre.substr(8);


otro asunto es que revises bien la condición que pones

if(this['sqr'+i].getBytesLoaded() >= this['sqr'+i].getBytesTotal()){
trace("cargado");
}

estás diciendo que si los bytes cargados son mayores o iguales al total, entonces que muestra 'cargando'

debería ser si los bytes cargados es menor que el total


otro, luego de que la carga se ha terminado si ya no te sirve 'cargador' entonces deberías eliminarlo para que no te ocupe memoria

finalmente quedaría algo así:

Código:
this['cargador'+i].onEnterFrame = function(){
	var mi_clip:MovieClip = this._parent['sqr'+this._name.substr(8)];
	if(mi_clip.getBytesLoaded() < mi_clip.getBytesTotal()){
		trace("cargado");
	}else{
		this.removeMovieClip();
	}
}
pero depende cómo esté tu código para duplicarlos

te recomendaría usar attachmovie
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #3 (permalink)  
Antiguo 04/04/2006, 13:19
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Muchas gracias!

Cita:
cómo propagas el contador: i ?
dentro de:
this['cargador'+i].onEnterFrame
esa variable : i ya se ha perdido
Ahí le has dado!!! Muchísimas gracias. No había caído en que la variable i se había perdido. Ahora ya me funciona el código...

Muchas gracias de nuevo!
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 02:11.