Comunidad de diseño web y desarrollo en internet online

Problema con una funcion alpha al llamarla 3 veces seguidas

Citar            
MensajeEscrito el 07 Mar 2007 11:56 pm
Hola a todos, verán tengo el siguiente código:

alfa = function (clip) {
this.createEmptyMovieClip("loop", 3);
loop.onEnterFrame = function() {
clip._alpha += 10;
if (clip._alpha>=100) {
delete loop.onEnterFrame;// eliminar loop
}
};
};

Es para conseguir que una imagen aparezca poco a poco. Como en la misma película tengo tres imágenes y le aplico el alpha:

this.image_mc._alpha = 0;
this.image1_mc._alpha = 0;
this.image2_mc._alpha = 0;

Ahora, con el código siguiente hago:

alfa(this.image_mc);
alfa(this.image1_mc);
alfa(this.image2_mc);

El problema es q solo fuciona en una imagen.Exactamente en la úlima. ¿Por qué puede ser?
Gracias

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2007 02:43 am
Hola Juan.

Pruba este código:


clip1._alpha = 0
clip2._alpha = 0
clip3._alpha = 0

_root.onEnterFrame = function() {
clip1._alpha += 5
clip2._alpha += 5
clip3._alpha += 5
trace (clip1._alpha)

if (clip1._alpha >= 100) {
delete _root.onEnterFrame
trace ("Ahora el alpha de clip1 es igual o mayor a 100")
}
}


Solo asegurate que tus movie clips se llamen: clip1, clip2 y clip3 respectivamente.
Ojala haya entendido bien tu duda.

Saludos.

Por andiespinoza

3 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 08 Mar 2007 05:32 pm
Lo siento, he probado eso y no se por que tampoco me funciona. Yo creo que no se ponerlo bien. Pongo aquí mi código por si a alaguien se le ocurre una solución.
Gracias

//función FX fadeIn
alfa = function (clip) {
this.createEmptyMovieClip("loop", 3);// creamos un clip de pelicula para hacer un loop
loop.onEnterFrame = function() {
clip._alpha += 10;
if (clip._alpha>=100) {
delete loop.onEnterFrame;// eliminar loop
}
};
};

this.createTextField("porcentaje", 2, 40, 111.4, 198.9, 20.8);
this.createTextField("porcentaje1", 3, 310, 111.4, 198.9, 20.8);
this.createTextField("porcentaje2", 4, 580, 111.4, 198.9, 20.8);
porcentaje.border = true;
porcentaje1.border = true;
porcentaje2.border = true;

this.image_mc._alpha = 0;
this.image1_mc._alpha = 0;
this.image2_mc._alpha = 0;

var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip) {
target_mc.startTimer = getTimer();
};
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._width = 250;
target_mc._height = 250;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.inm.es/www/wwb/puert/wde0b000.gif", image_mc);
image_mcl.loadClip("http://www.inm.es/www/wwb/puert/wde0b012.gif", image1_mc);
image_mcl.loadClip("http://www.inm.es/www/wwb/puert/wde0b0d1.gif", image2_mc);

var miFormato:TextFormat = new TextFormat();
miFormato.bold = true;
miFormato.font = "Arial";
miFormato.size = 12;
miFormato.color = 0xFF0000;
miFormato.align = "center";
porcentaje.setNewTextFormat(miFormato);
porcentaje1.setNewTextFormat(miFormato);
porcentaje2.setNewTextFormat(miFormato);

this.onEnterFrame = function() {
this.image_mc.percent = ( this.image_mc.getBytesLoaded()/this.image_mc.getBytesTotal())*100;
this.image1_mc.percent1 = ( this.image1_mc.getBytesLoaded()/this.image1_mc.getBytesTotal())*100;
this.image2_mc.percent2 = ( this.image2_mc.getBytesLoaded()/this.image2_mc.getBytesTotal())*100;

if (!isNan(this.image_mc.percent)) {
this.porcentaje.text = "Cargando: "+ Math.round(this.image_mc.percent)+" %";
}

if (!isNan(this.image1_mc.percent1)) {
this.porcentaje1.text = "Cargando: "+ Math.round(this.image1_mc.percent1)+" %";
}

if (!isNan(this.image2_mc.percent2)) {
this.porcentaje2.text = "Cargando: "+ Math.round(this.image2_mc.percent2)+" %";
}

// imagen cargada
// cargamos la función para el fx y eliminamos el campo que muestra el porcentaje
if (this.image_mc.percent == 100) {
this.porcentaje.removeTextField();
alfa(this.image_mc);
delete this.onEnterFrame;
}

if (this.image1_mc.percent1 == 100) {
this.porcentaje1.removeTextField();
alfa(this.image1_mc);
delete this.onEnterFrame;
}

if (this.image2_mc.percent2 == 100) {
this.porcentaje2.removeTextField();
alfa(this.image2_mc);
delete this.onEnterFrame;
}
};

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2007 05:51 pm
Hola
Creo q el problema esta aca

this.createEmptyMovieClip("loop", 3);

Estas creando en cada llamada un movieclip en el mismo nivel, por lo q reemplaza al anterior.....

Otra forma de hacerlo, combinando tu codigo con el de la respuesta anterior

Código :

function alpha (mc){
    mc.onEnterFrame = function(){
       if (this._alpha<100)
           this._alpha += 10;
       else
            delete this.onEnterFrame;
    }
}

this.image_mc._alpha = 0;
this.image1_mc._alpha = 0;
this.image2_mc._alpha = 0;

alfa(this.image_mc);
alfa(this.image1_mc);
alfa(this.image2_mc);


saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 08 Mar 2007 11:18 pm
No consigo hacer que me funcione ninguno de los metodos por lo que supongo que será algun fallo mio a la hora de insertar tu codigo en mi pelicula.

¿donde debo ponerlo exactamente?

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Mar 2007 09:55 pm
Ya lo he cosneguido. Muchisismas gracias. Era un fallo en mi código que ya he subsanado.

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2007 01:16 pm
y podrias decir cual es el fallo porque a mi me paso lo mismo y no logro sulocionarlo jaja

saludos

Por bigotte

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Mar 2007 12:03 am
Yo utilice el primer codigo q me dieron. El segundo no me funcionaba y para quitar el alpha y que la imagen qeude visible, tienes que tener en cuetna que este se debe eliminar cuando la imagen este cargada totalmente, no cuando haya llegado a 100.
Espero haberte servido de ayuda

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Mar 2007 03:55 am
no entendi...
a mi lo que me pasa es que tengo dos funciones... una para mover el movieclip y otra para rotarlo... pero solo se ejecuta una sola.. y no entiendo por que

Por bigotte

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Mar 2007 11:53 am
Asi sin mas no se que puede pasar. Pueden ser muchas cosas. Desde que no las llamas correctamente o lo haces desde un bucle con una condicion que no se llega a cumplir, que tengas problemas con los niveles...

Por juangogu

25 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Mar 2007 02:38 pm
var linea, linea2:MovieClip;

function alpha (mc){
mc.onEnterFrame = function(){
if (mc._alpha<100){
mc._alpha += 5;
trace (mc._alpha);
} else {
delete mc.onEnterFrame;
}
}
}

linea._alpha = 0;
linea2._alpha = 0;


if (linea._alpha >= 100){
trace ("bigotte");
} else {
alpha (linea2);
}

ese es un ejemplo de lo que quiero hacer... lo que a mi me pasa es que cuando lo codifico solo se me cumple el else, es decir, se aumenta el alfa de la linea2. Y yo quiero que se haga primero el alfa al 100% de la linea y despues, automaticamente, cuando termina eso que se haga 100% alfa la linea2.

creo que esta vez si vas a entender lo que quiero hacer. Creo que si... que tengo problemas con los niveles... porque no se usarlos bien. recien estoy empezando en esto... si me podes ayudar mejor...

saludos[/flash]

Por bigotte

3 de clabLevel



Genero:Masculino  

msie

 

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