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

this ["b" + i] funciona solo pero no en for

Estas en el tema de this ["b" + i] funciona solo pero no en for en el foro de Flash y Actionscript en Foros del Web. Estamos aquí con mi amigo Tortugachat tratando de comprender esto.. En el 1er frame... tenemos este as. MovieClip.prototype.mover = function() { this._x += 20; if ...
  #1 (permalink)  
Antiguo 24/08/2004, 10:54
Avatar de La2daElegida  
Fecha de Ingreso: noviembre-2003
Ubicación: Argentina
Mensajes: 1.893
Antigüedad: 14 años
Puntos: 4
this ["b" + i] funciona solo pero no en for

Estamos aquí con mi amigo Tortugachat tratando de comprender esto..

En el 1er frame... tenemos este as.

MovieClip.prototype.mover = function() {
this._x += 20;
if (this._x>=300) {
this._x = 300;
delete this.onEnterFrame;
this.onEnterFrame = this.cuadro.abrir;
//_root.b1.enabled = true;
for (i=1; i<n; i++) {
if (this["_root.b" + i] != this._name) {
this["_root.b" + i].enabled = true;
}
}
}
};

Lo que hace es mover un mc hasta la posicion 300 en x, luego ejecuta una función simple sobre un mc q esta dentro de este. Todo bien.
Lo q intento es desbloquear todos los botones del resto del menú, menos este claro.
Si trabajo sobre _root.b1.enabled = true; hermoso me desbloquea ese.. pero si lo hago con esta función.

for (i=1; i<n; i++) {
if (this["_root.b" + i] != this._name) {
this["_root.b" + i].enabled = true;
}
}

no pasa nada. Tambien tengo un problema similar dentro de otra funcion.

Q puede ser?.. Osea, se puede hacer de otras formas.. pero quiero saber por q no anda mi for!!!
__________________
Juegos online . Juegos gratis
  #2 (permalink)  
Antiguo 24/08/2004, 11:28
Avatar de TortugaChat  
Fecha de Ingreso: julio-2004
Ubicación: Coatzacoalcos, Veracruz, México.
Mensajes: 150
Antigüedad: 13 años, 4 meses
Puntos: 0
De acuerdo Finalmente, quedó así

Código final:


for (i=1; i<=n; i++) {
this["b"+i].onRelease = function() {
this.vt = 0;
this.valorFinal = 300;
for (var k = 1; k<=5; k++) {
_root["b"+k].enabled = false;
}
this.cuadro.gotoAndStop("1");
this.onEnterFrame = this.mover;
};
}
  #3 (permalink)  
Antiguo 24/08/2004, 11:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 40
Antigüedad: 13 años, 8 meses
Puntos: 0
Pues yo creo que es porque los this y _root no están bien ubicados, aqui tengo un pequeño codigo que puede servirte espero:

for (i=1; i<n; i++) {
if(_root["b"+i] != nombre{
this.enabled = true;
}

Creo que debes usar el valor de this._name, en lugar de la expresión ya que causa conflicto usar this simultameamente en la función y en for.
Otra forma para que no haya conflicto entre función y for es condicionando la reproducción de for por un booleano que se genere dentro de tu función, asi ejecutas tu función y generas for pero fuera.
  #4 (permalink)  
Antiguo 24/08/2004, 11:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 40
Antigüedad: 13 años, 8 meses
Puntos: 0
Si como dice la tortuga es mejor asi, pero si posteriormente necesitas los this hay que manejarlos por separado, pues a mi me gusta más hacer los codigos modulares ya que asi si tengo problemas en uno es más fácil identificarlo.
  #5 (permalink)  
Antiguo 24/08/2004, 14:02
Avatar de La2daElegida  
Fecha de Ingreso: noviembre-2003
Ubicación: Argentina
Mensajes: 1.893
Antigüedad: 14 años
Puntos: 4
Creo q no comprendo el uso del This["b" + i]

Creo q mi error es de concepto, el this ["b" + i] siendo i = 1.. no es b1?.
Es decir.. creo q mi error es usar el this[] con este objetivo.
Siempre use el this para nombrar al elto en cuestión, pero me comentaron que usando this ["b" + i] me solucionaba algunos problemas.
Tons, cuando quiero aplicar, por ejemplo propiedades a objetos tipo botones los llamo b1, b2, b3.. y luego uso el this ["b"+i] dentro de un ciclo for para asignarlas.

En vez de esto, q uso con este fin?.

Y muchas gracias por todo.. especialmente a TORTUGACHAT, y a Maltos.. perdón, no sabia q eras vos?.
__________________
Juegos online . Juegos gratis
  #6 (permalink)  
Antiguo 25/08/2004, 16:31
Avatar de La2daElegida  
Fecha de Ingreso: noviembre-2003
Ubicación: Argentina
Mensajes: 1.893
Antigüedad: 14 años
Puntos: 4
Maltos, muchas gracias por todo.. ya lo habia comprendido.

Ahora, la utilizacion de this._parent[] la puedo remplezar por _parent[] me da el mismo resultado.

MUCHAS GRACIAS!
__________________
Juegos online . Juegos gratis
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 19:00.