Comunidad de diseño web y desarrollo en internet online

Como eliminar unonEnterFrame sin que se desactive un setMask

Citar            
MensajeEscrito el 17 Nov 2008 10:11 am
Estoy programando una galeria de imagenes cargadas dinámicamente y con máscara usando este código:

Código :

posicion = 50;
cargador = function (g) {
   this["z"+g].onEnterFrame = function() {
      if (this["foto"+g].getBytesLoaded() == this["foto"+g].getBytesTotal()) {
         mascara(g);
         delete _root["z"+g].onEnterFrame;
      }
   };
};
mascara = function (m) {
   trace(m);
   _root["foto"+m].setMask(_root["mask"+m]);
};
for (p=0; p<3; p++) {
   attachMovie("mc", "foto"+p, p+1);
   attachMovie("z", "z"+p, p+100);
   attachMovie("mask", "mask"+p, p+50);
   this["foto"+p]._x = posicion;
   this["mask"+p]._x = posicion;
   this["z"+p]._y = posicion;
   posicion += 100;
   this["foto"+p].loadMovie("img"+p+".jpg");
   cargador(p);
}
stop();


pero el delete _root["z"+g].onEnterFrame; de la 5 línea hace que la máscara no funciona.
la alternativa (eliminar ese delete) hace que la máscara funcione, pero entonces me quedo con varios enterFrames activados...

alguien sabe como eliminar el onenterFrame sin que me desactive-elimine la máscara??

albert

Por albertbb

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Nov 2008 11:53 am
bien, visto que nadie responde, me autorespondo...

he probado cambiar el onEnterFrame por un setInterval,

Código :

posicion = 50;
cargador = function (g) {
   this[g+"i"] = setInterval(function () {
      if (this["foto"+g].getBytesLoaded() == this["foto"+g].getBytesTotal()) {
         _root["foto"+g].setMask(_root["mask"+g]);
         clearInterval(this[g+"i"])
      }
   }, 1);
};

for (p=0; p<4; p++) {
   attachMovie("mc", "foto"+p, p+1);
   attachMovie("mask", "mask"+p, p+50);
   fotoActual=this["foto"+p]
   maskActual=this["mask"+p]
   this["foto"+p]._x = posicion;
   this["mask"+p]._x = posicion;
   this["z"+p]._y = posicion;
   posicion += 100;
   this["foto"+p].loadMovie("img.jpg");
   cargador(p);
}
stop();


y parece que funciona!

gracias,
de nada!

albert

Por albertbb

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Nov 2008 04:07 pm
Primer POST de Albert: Lun Nov 17, 2008 10:11 am
Segundo POST de Albert (ya impaciente): Lun Nov 17, 2008 11:53 am

Tiempo de espera: 1 hora 42 minutos

Mmmm ... yo pediría que me devuelvan el dinero ;)

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.