12/01/2009, 06:27
|
| | Fecha de Ingreso: julio-2004
Mensajes: 15
Antigüedad: 20 años, 5 meses Puntos: 4 | |
Respuesta: variable.gotoAndStop() La sintaxis que estás utilizando no es la correcta
intenta esto:
btn1.onRelease = function() { _root.mc1.gotoAndStop(2); _root[ "mc" + _root.posicion ].gotoAndStop(1); _root.posicion = "1";
};
btn2.onRelease = function() { _root.mc2.gotoAndStop(2); _root[ "mc" + _root.posicion ].gotoAndStop(1); _root.posicion = "2";
};
Al utilizar los square brakets estará evaluando el contenido, por lo que el flash lo consideraría como (ej) _root.mc1.gotoAndStop(1);
Lo anterior funcionará siempre y cuando los MovieClips se encuentren en _root. En caso de que no sea así, intenta lo siguiente:
btn1.onRelease = function() { _root.mc1.gotoAndStop(2); this.parent[ "mc" + _root.posicion ].gotoAndStop(1); _root.posicion = "1";
};
btn2.onRelease = function() { _root.mc2.gotoAndStop(2); this.parent[ "mc" + _root.posicion ].gotoAndStop(1); _root.posicion = "2";
};
Sucede que cuando haces referencia a un objeto no es posible utilizar strings ni símbolos ( +, -, *, etc).
Para estos casos solía utilizarse eval(), pero es una función obsoleta que ha quedado en el olvido. Te recomiendo revisar la documentación de esta función y te encontrarás con otras soluciones como la que he mencionado (this[]) Otro punto importante: Cuando estás utilizando una variable para varios objetos es recomendable almacenarla en _root o globalizarla, ya que
mc1.onRelease = function(){
posicion = '2';
}
...almacenará la variable posicion dentro del MovieClip mc1.
Lo mismo sucede con las rutas, hay que tener mucho cuidado con ellas cuando haces referencia a un objeto.
Saludos Sargento
www.sargentoweb.com
Última edición por Sargento; 12/01/2009 a las 06:32
Razón: olvidé ajustar parte del código
|