Comunidad de diseño web y desarrollo en internet online

Necesito su ayuda Please!!!

Citar            
MensajeEscrito el 22 May 2007 01:39 am
Bien, no soy muy agil en cuanto AS y llevo casi un dia entero tratando de solucionar esto :

Tengo en el escenario 34 clips de pelicula los cuales tienen por nombres de instancias cl1,cl2,cl3,cl4....

He creado un bucle para recorrerlos y por ejemplo con onRollOver estos realizen una funcion , hasta ahi no tengo problemas el problema viene cuando quiero sacar el valor de un Array con el mismo bucle , y usando el valor de la variable "i", en este caso recorrer cada elemento del array y al ejecutar un onRelease sobre cada boton , este me muestre el valor que se supone me tendria que dar si correspondiera al nombre de instancia, pero siempre me muestra el ultimo valor

Código :

//Array Ficticia
var claves:Array = new Array ("uno","dos","tres","cuatro".......);

function encima() {
   this.gotoAndPlay("on");
}
function afuera() {
   this.gotoAndPlay("off");
}

for(i=0;i<34;i++){
_root["cl"+i].onRollOver = encima;
_root["cl"+i].onRollOut = afuera;
}


Hasta aquí todo bien ...ahora he intentado esto :

Código :

for(i=0;i<34;i++){
_root["cl"+i].onRollOver = encima;
_root["cl"+i].onRollOut = afuera;
_root["cl"+i].onRelease = function (){
  trace(claves[i]);
}
}



Ojala me haya dado a entender....si tienen un codigo alternativo que funcione haciendo algo similar se los agradezco de antemano.

Por kofres

13 de clabLevel



 

Maquetador web

firefox
Citar            
MensajeEscrito el 22 May 2007 10:03 am
Prueba metiendo una identificación en cada movieclip. Yo suelo usar esto para identificar movie clips en bucles.

No he probado el codigo pero si no te funciona me lo dices y te lo miro más detenidamente.

Código :

//Array Ficticia
var claves:Array = new Array ("uno","dos","tres","cuatro".......);

function encima() {
   this.gotoAndPlay("on");
}
function afuera() {
   this.gotoAndPlay("off");
}

for(i=0;i<34;i++){
    _root["cl"+i].onRollOver = encima;
    _root["cl"+i].onRollOut = afuera;
    _root["cl"+i].valor = claves[i];  // le damos directamente el valor a cada mc
}


for(i=0;i<34;i++){
   _root["cl"+i].onRollOver = encima;
   _root["cl"+i].onRollOut = afuera;
   _root["cl"+i].onRelease = function (obj) {
         trace(obj.valor);  //cada mc tiene su valor guardado, solo hay que hacer esto
   }
}


Tambien puedes aignar solo la id (el valor de i en el bucle) en lugar del valor del elemento del array, y en el trace poner trace(claves[obj.id]);

Espero te sea de ayuda.

----------------------------------
Antonio Sánchez
www.leukasoft.com

Por sr.pino

24 de clabLevel



 

Elche - España

firefox
Citar            
MensajeEscrito el 23 May 2007 01:44 am
Gracias por la ayuda, tendrás algún ejemplo? puesto creo que no funciono ( o yo soy muy wey :( ).

Gracias de nuevo.

Por kofres

13 de clabLevel



 

Maquetador web

firefox
Citar            
MensajeEscrito el 23 May 2007 02:11 pm
Disculpa, aqui te paso un ejemplo para que lo veas mas claro.

http://www.leukasoft.com/cristalab/prueba2.fla

Código :

//Array Ficticia
var claves:Array = new Array ("uno","dos","tres","cuatro");

function encima() {
   this.gotoAndStop("on");
}
function afuera() {
   this.gotoAndStop("off");
}

for(i=1;i<=4;i++){
    _root["b"+i].gotoAndStop("off");
    _root["b"+i].onRollOver = encima;
    _root["b"+i].onRollOut = afuera;
    _root["b"+i].valor = claves[i];  // le damos directamente el valor a cada mc
}


for(i=0;i<4;i++){
   _root["b"+i].onRollOver = encima;
   _root["b"+i].onRollOut = afuera;
   _root["b"+i].onRelease = function () {
         trace(this.valor);  //cada mc tiene su valor guardado, solo hay que hacer esto
   }
}

Por sr.pino

24 de clabLevel



 

Elche - España

firefox
Citar            
MensajeEscrito el 25 May 2007 06:55 pm
Gracias!!!.. :wink:
Guiño Sr. Pino mas que claro ahora si.... estaba haciendolo mal.....de nuevo gracias por la ayuda

Por kofres

13 de clabLevel



 

Maquetador web

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.