Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/01/2009, 06:27
Sargento
 
Fecha de Ingreso: julio-2004
Mensajes: 15
Antigüedad: 19 años, 8 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