Comunidad de diseño web y desarrollo en internet online

correspondencia entre elementos de un array

Citar            
MensajeEscrito el 13 Feb 2009 07:22 pm
Hola,
Mi problema es que cargo las imágenes de un array y luego se visualizan con roll over, pero con este código se cargan todas y veo con todos los botones la última imagen del array, cuando lo que quiero es asociar cada botón con la imagen correspondiente (los dos array están en orden y tienen el mismo nombre).

Código ActionScript :

var imagenes:Array = new Array ("imagen1.jpg", "imagen2.jpg",....)
for (var n:int = 0; n < imagenes.length; n++) {
   var imgLoader:Loader = new Loader();
   var ruta:String="carpetaImagenes/";
imgLoader.load(new URLRequest(ruta+imagenes[n]));
   var container:Sprite = new Sprite();
   container.x = 500;
   container.y = 200;
   addChild(container);
var botones:Array = new Array("imagen1", "imagen2",....)
for (var i=0; i < botones.length; i++) {
   this[botones[i]].buttonMode = true;
   this[botones[i]].useHandCursor=true;
   this[botones[i]].addEventListener(MouseEvent.ROLL_OVER, upreflejo);
   this[botones[i]]..addEventListener(MouseEvent.ROLL_OUT, downreflejo);

function upreflejo(event:MouseEvent):void {
         for (var n:int = 0; n < imagenes.length; n++) {
            container.addChild(imgLoader);
         }
      }

   function downreflejo(event:MouseEvent):void {
container.removeChild(imgLoader);
   }

Espero que alguien se anime a contestar. Muchas gracias

Por p-agua

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Feb 2009 08:07 pm
¿Es un loop metido dentro de otro? Lo que está claro es que en cada vuelta sobreescribes la referencia a imgLoader, y la que vale es la última, tendrás que guardar la referencia a los Loader en un array.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Feb 2009 09:44 pm
Quiero que al hacer rollover en cada botón me cargue la imagen correspondiente.
Lo siento pero soy novata y no se como se guarda la referencia a los loader en un array. Te refieres a que tengo que hacer una nueva variable para reconocer el número de orden de la imagen en su array y como coinciden que eso sea lo que cargue cada botón?

Por p-agua

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 14 Feb 2009 05:22 pm
Dado que la carga toma cierto tiempo, si el rollOver no dura cierto tiempo, puede que no aparezca. Luego una idea simple:

Código ActionScript :

var container:Sprite = new Sprite(); 
var imgLoader:Loader = new Loader(); 
 container.x = 500; 
 container.y = 200; 
container.addChild(imgLoader)
 addChild(container);
var fotos:Array = ["img1.jpg", ...., "img10.jpg"]
var botones:Array = new Array("imagen1", "imagen2",....) 
for (var i=0; i < botones.length; i++) { 
   this[botones[i]].buttonMode = true; 
   this[botones[i]].useHandCursor=true; 
   this[botones[i]].nr
   this[botones[i]].addEventListener(MouseEvent.ROLL_OVER, upreflejo); 
   this[botones[i]]..addEventListener(MouseEvent.ROLL_OUT, downreflejo); 
  }
function upreflejo(event:MouseEvent):void { 
  imgLoader.visible = true
  imgLoader.load (new URLRequest(ruta+fotos[this.nr]))
} 
function downreflejo(event:MouseEvent):void { 
  imgLoader.visible = false
 } 


No estoy seguro si imgLoader está en scope dentro de los botones, usualmente al tirar todo en la línea de tiempo todo lo que declares es visible, pero pruebalo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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