Comunidad de diseño web y desarrollo en internet online

error al asignar un evento OnRelease a movie

Citar            
MensajeEscrito el 25 Jul 2008 08:13 pm
Hola Chicos,

Dentro de un bucle quiero asignar al clip correinte una funcion con evento onRelease.

Código :

for (rows = 0; rows < photosPerRow; ++rows){
             current_mc =  "mini" + i + "_mc";
            this.attachMovie("mov", current_mc, i, {_x:(rows * (miniW+xSpace)), _y:yc});
            loader_mc.loadClip(photos[i].enlace, current_mc);
            
                               current_mc.onRelease = function() {
               trace("hola");
            };   
         i++;
      }


El codigo funciona correctamente, pero al intentar anadir evento onRelease (trace es para testeo)
me sale error

There is no property with the name 'onRelease'.

No me suena de nada este error, no puedo entender que quiere decir el depurador?

Gracias a todos antemano.

Por skywalker

28 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 25 Jul 2008 08:56 pm
Veo unas cuantas inconsistencias en tu código, postéalo completo, no solo esta sección, sino lo que tiene antes y después para poder ayudarte.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 26 Jul 2008 07:38 am
Aqui esta la funcion completa de crear miniaturas para la a galeria

Código :

function createMiniaturas(photosPerPage:Number, 
               photosPerRow:Number, 
               miniW:Number, 
               miniH:Number, 
               xSpace:Number, 
               ySpace:Number){
   var i:Number = 0;
   var yc:Number = 1;
   var current_mc:String;
   
while (i < photosPerPage) {
      var rows:Number = 0;
      
      for (rows = 0; rows < photosPerRow; ++rows){
             current_mc =  "mini" + i + "_mc";
            this.attachMovie("mov", current_mc, i, {_x:(rows * (miniW+xSpace)), _y:yc});
            loader_mc.loadClip(photos[i].enlace, current_mc);
            current_mc.onRelease = function() {
               trace("hola");
            };
            i++;
      }
      yc = yc * (miniH+ySpace);
   }
}


La llamo luego despues de cargar XMl:

Código :

createMiniaturas(photosPerPage, photosPerRow, 116,76,5,10);


Las miniaturas se crean bien, en orden que yo quiera y se cargan dentro imagenes. Pero quiero asociar un evento onclick sobre cada una de ellas para seguir avanzando, y no me deja.

Un cordial saludo, Victoria

Por skywalker

28 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 27 Jul 2008 01:17 pm
Mira en tu función no veo declarado el movieClipLoader llamado "loader_mc", tampoco está el objeto que va a recibir el listener, y no puedes darle acciones a un movieClip hasta que su contenido sea leido completamente, en resultado tu función debería quedar así más o menos:

Código :

function createMiniaturas(photosPerPage:Number, photosPerRow:Number, miniW:Number, miniH:Number, xSpace:Number, ySpace:Number) {
      
   var i:Number = 0;
   var yc:Number = 1;
   var current_mc:String;
   var myMc:MovieClip;
   
   var loader_mc:MovieClipLoader;
   var listener:Object;

   while (i < photosPerPage) {
      
      var rows:Number = 0;

      for (rows=0; rows < photosPerRow; rows++) {
         
         current_mc = "mini"+i+"_mc";
         
         myMc = this.attachMovie("mov", current_mc, i ,{_x:(rows*(miniW+xSpace)), _y:yc});
         
         //---Crear el MovieClipLoader
         loader_mc = new MovieClipLoader();
         listener = new Object();

         //---Cuando la imagen sea laida le doy acciones
         listener.onLoadInit = function(target:MovieClip):Void{
            
            target.onRelease = function():Void {
               
               trace("hola");
               
            };
            
         }
         
         loader_mc.addListener(listener);
         loader_mc.loadClip(photos[i].enlace, current_mc);
         
         i++;
      }
      
      yc = yc*(miniH+ySpace);
      
   }
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Jul 2008 06:56 pm
Muchissimas gracias! No tenia el listener, supongo que es imresindible.
Tenia iniciado el loader en principio del codigo fuera de todas funciones
loader_mc.addListener(listener); y las miniaturas se me cargaron, pero por lo que veo si no se utiliza listeneres no se puede asignar nada.

Iguamente el listener lo iniciare fuera de la funcion para no crear muchos objetos.
Voy probando,

Gracias de nuevo

Por skywalker

28 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 29 Jul 2008 01:00 am
Es mejor que el listener esté dentro de la función , así trabaja como variable local y una vez que termine la función dejará de existir, si lo pones fuera entonces tendrás el objeto todo el tiempo declarado.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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