Comunidad de diseño web y desarrollo en internet online

Dos códigos para un mismo botón

Citar            
MensajeEscrito el 04 Sep 2008 07:32 am
Tengo un botón al cual le he metido el codigo del tutorial para hacer efecto de fade-in y fade out, para mi ese codigo queda así:

Código :

//asignamos la acción del Over para que actue sobre nuestro movieclip
//que queremos reproducir
on (rollOver)
{
    mc_contacto.onEnterFrame = function ()
    {
      //le decimos a ese MC que si se encuentra en cualquier número frame 
      //diferente a 41, avance al siguiente; es decir, si está en el 1
      //avanzará al 2, después al 3...y asi sucesivamente
      
        if (this._currentframe != 25)
        {
            this.nextFrame();
        }
      //usando el "else" tomamos la comparativa que nos acomoda, que es "==". 
      //le decimos a ese MC que si se encuentra en el frame 41 se detenga 
      //y borre el "onEnterFrame"
      
        else
        {
            this.stop();
            delete this["onEnterFrame"];
        } // end if
    };
}
//asignamos la accion del RollOut para que actue sobre nuestro movieclip
//que queremos reproducir
on (rollOut)
{
    mc_contacto.onEnterFrame = function ()
    {
      //le decimos a ese MC que si se encuentra en cualquier número frame 
      //diferente a 1, retroceda al anterior; es decir, si está en el 41
      //regresará al 40, después al 39...y así continuamente.
      
        if (this._currentframe != 1)
        {
            this.prevFrame();
        }
      //usando el "else" tomamos la comparativa que nos acomoda, que es "==". 
      //le decimos a ese MC que si se encuentra en el frame 1 se detenga 
      //y borre el "onEnterFrame"
      
        else
        {
            this.stop();
            delete this["onEnterFrame"];
        } // end if
    };
}


Además quiero que ese mismo botón cargue por medio de MovieClipLoader un SWF externo, con su precarga y todo, ese codigo para mi es el siguiente:

Código :

//DECLARACIÓN DE VARIABLES
var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
//Esto escondera el menu del click derecho
Stage.showMenu=false;

//CREADOR DEL LISTENER
//Las funciones de los MovieClips son tres esenciales;
/*    onLoadStart (Ejecutada cuando inicia la precarga)
      onLoadProgress (Ejecutada cada vez que avanza la descarga)
     onLoadComplete (Ejecutada cuando la precarga termina)
*/

//Función onLoadStart, asignada al objeto Listener que luego agregaremos a
//nuestro MovieClipLoader El parametro "target_mc" es una referencia al 
//MovieClip de destino
listener.onLoadStart = function(target_mc) {
   trace("Iniciando");
   //Colocamos la barra de precarga en el escenario con el nombre "barra_mc"
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   //Ubicamos la barra en la mitad del escenario
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
   //Y nuestra barra esta lista para moverse en el evento onLoadProgress
};

//Función onLoadProgress, es la función clave, tiene tres parametros
//target_mc, quees igual que el anterior, loadedBytes, que nos dice la 
//cantidad de bytes cargados y totalBytes que nos dice la cantidad total
//de bytes de la pelicula en proceso de descarga
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   trace("En progreso");
   //Declaramos la variable de calculo de porcentaje
   var porcentaje:Number;
   //Calculamos el porcentaje con las variables que le llegan por parametro a la función
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   //Vamos al frame del porcentaje en nuestra barra de carga
   _root.barra_mc.gotoAndStop(porcentaje);
   //Ahora escondemos el objeto de la precarga y lo frenamos
   target_mc._visible=false;
   target_mc.stop();
};

//Función onLoadComplete
listener.onLoadComplete = function(target_mc) {
   trace("ya");
   //Como ya cargo completo, entonces quitamos la barra
   _root.barra_mc.removeMovieClip();
   //Y mostramos el objeto
   target_mc._visible=true;
   target_mc.play();
};

//ASIGNACIÓN DEL LISTENER AL MOVIECLIPLOADER
//Ahora, todas las funciones que declaramos seran asignadas a
//nuestro MovieClipLoader "precargador_mcl"
precargador_mcl.addListener(listener);

//CODIGO DEL BOTON
//Esta variable nos servira para saltarnos el cache y asi siempre
//ver el efecto de precarga, quitala o dejala en blanco si no
//lo deseas
var nochache:String;
//En el evento onRelease del boton . . . 
cargar_btn.onRelease = function() {
   nocache = "?nocaching="+random(65000);
   //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo
   //"pelicula.swf" y que lo muestre en "carga_mc" :D
   precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
};


Este codigo va en un frame de la pelicula, y hace referencia a mi botón que se llama cargar_btn, pero no hace ni caso, seguramente al mezclar los dos codigos en ese mismo boton habrá algo que anula del uno al otro, por favor ayudenme a solucionarlo y crear un codigo que me valga, mil gracias amigos...

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 04 Sep 2008 10:04 am
Aparte de que tu botón debe tener nombre de instancia "cargar_btn", el cual no tiene nada que ver con el nombre que tiene este en la biblioteca, también debes tener en el mismo lugar donde esté el botón un MovieClip con nombre de instancia "caja_mc" que es donde el movieClipLoader cargará los archivos.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Sep 2008 10:22 am
Mil gracias elchininet estaba ya loco y era exactamente eso lo q me pasaba...
Pero... jejeje ahora tengo otro problema con un boton similar... me explico
es un boton dentro de un MC y a ese boton solamente quiero darle la accion de que en la pelicula valla al frame 131, es decir on (release) {gotoandplay (131);} , ok? el caso es q si le doy la accion al boton, al estar dentro de un MC no me lleva al frame 131 de la pelicula original, como puedo hacerlo?

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 04 Sep 2008 10:32 am
Solo debes darle el camino a la película principal:

Código ActionScript :

_root.gotoandplay(131);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Sep 2008 11:16 am
mi idolo... muchas gracias, y perdon por la torpeza, estoy aprendiendo y hoy me has iluminado...

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 04 Sep 2008 02:07 pm
esto es un poco rizar el rizo, pero...

donde tendria que colocar los _root en el siguiente codigo, para que cargase el swf externo (Pelicula.swf) en un MC que está en la pelicula principal (caja_mc)

es que no sabes lo mucho que me facilitaría eso las cargas, gracias, lo he intentado por mi mismo, pero no logro entender el codigo muy bien aun...

gracias!

Código :

//DECLARACIÓN DE VARIABLES
var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
//Esto escondera el menu del click derecho
Stage.showMenu=false;

//CREADOR DEL LISTENER
//Las funciones de los MovieClips son tres esenciales;
/*    onLoadStart (Ejecutada cuando inicia la precarga)
      onLoadProgress (Ejecutada cada vez que avanza la descarga)
     onLoadComplete (Ejecutada cuando la precarga termina)
*/

//Función onLoadStart, asignada al objeto Listener que luego agregaremos a
//nuestro MovieClipLoader El parametro "target_mc" es una referencia al 
//MovieClip de destino
listener.onLoadStart = function(target_mc) {
   trace("Iniciando");
   //Colocamos la barra de precarga en el escenario con el nombre "barra_mc"
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   //Ubicamos la barra en la mitad del escenario
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
   //Y nuestra barra esta lista para moverse en el evento onLoadProgress
};

//Función onLoadProgress, es la función clave, tiene tres parametros
//target_mc, quees igual que el anterior, loadedBytes, que nos dice la 
//cantidad de bytes cargados y totalBytes que nos dice la cantidad total
//de bytes de la pelicula en proceso de descarga
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   trace("En progreso");
   //Declaramos la variable de calculo de porcentaje
   var porcentaje:Number;
   //Calculamos el porcentaje con las variables que le llegan por parametro a la función
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   //Vamos al frame del porcentaje en nuestra barra de carga
   _root.barra_mc.gotoAndStop(porcentaje);
   //Ahora escondemos el objeto de la precarga y lo frenamos
   target_mc._visible=false;
   target_mc.stop();
};

//Función onLoadComplete
listener.onLoadComplete = function(target_mc) {
   trace("ya");
   //Como ya cargo completo, entonces quitamos la barra
   _root.barra_mc.removeMovieClip();
   //Y mostramos el objeto
   target_mc._visible=true;
   target_mc.play();
};

//ASIGNACIÓN DEL LISTENER AL MOVIECLIPLOADER
//Ahora, todas las funciones que declaramos seran asignadas a
//nuestro MovieClipLoader "precargador_mcl"
precargador_mcl.addListener(listener);

//CODIGO DEL BOTON
//Esta variable nos servira para saltarnos el cache y asi siempre
//ver el efecto de precarga, quitala o dejala en blanco si no
//lo deseas
var nochache:String;
//En el evento onRelease del boton . . . 
cargar_btn.onRelease = function() {
   nocache = "?nocaching="+random(65000);
   //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo
   //"pelicula.swf" y que lo muestre en "carga_mc" :D
   precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
};

Por brigi

48 de clabLevel



 

Sevilla

msie
Citar            
MensajeEscrito el 04 Sep 2008 04:01 pm
Ya lo tienes puesto:

Código ActionScript :

precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);


Pero esto se ejecutará cuando presiones un botón con nombre de instancia "cargar_btn"

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 05 Sep 2008 07:42 am
No exactamente, eso que esta puesto carga la pelicula.swf en caja_mc que esta en esa linea de tiempo, el caso es que el boton esta dentro de un movieclip y caja_mc esta fuera de ese movieclip, en la linea principal de tiempo, es decir un nivel fuera, que variacion tendria q hacer en el codigo para cargar la pelicula en la caja del nivel principal.

Gracias. He probado poner

_root.precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);

pero asi no me funcion, asi que supongo que hago algo mal.

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 05 Sep 2008 09:00 am
Si el botón está dentro de un movieClip no puedes ir a buscarlo a la raiz, tienes que darle la ruta a ese botón dentro del movieClip, no me dices cual es el nombre de instancia de este, pero suponiendo que fuera "contenedor" debe ser algo como esto:

Código ActionScript :

contenedor.cargar_btn.onRelease = function():Void {
    nocache = "?nocaching="+random(65000);
    precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 05 Sep 2008 09:22 am
Gracias de nuevo chininet...
Tengo una duda pq al meter este codigo

Código :

01_a_03.inicio_btn.onRelease = function(): Void {
   nocache = "?nocaching="+random(65000);
   precargador_mcl.unloadClip("Pelicula.swf"+nocache, caja_mc);
   _root.gotoAndPlay(284);
};


me saca error de sintaxis, el caso es que el codigo se lo he puesto al boton "inicio_btn" q esta dentro del MC "01_a_03", ahí es donde va o va en la pelicula principal??? o en otro sitio???

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 05 Sep 2008 09:24 am
por cierto no te habia dicho... q necesito tanto cargar como descargar... este codigo en concreto es para descargar lo q ya estaba cargado en caja_mc, no se si estará bien, esa es una segunda duda... joder tio estaras ya "jarto" de mi... agradezco tu tiempo verdaderamente.
Gracias.

Por brigi

48 de clabLevel



 

Sevilla

msie7
Citar            
MensajeEscrito el 05 Sep 2008 10:14 am
Los códigos encima de los objetos tienen una estructura como esta:

Código ActionScript :

on(press){

    //---Aquí los códigos

}


Ahora los que se ponen en el frame tienen esta estructura:

Código ActionScript :

boton.onPress = function():Void{

    //---Aquí los códigos

}


Por lo tanto el código que ves es para poner en el frame, justo en el frame donde se encuentra el movieClip que contiene el botón (por lo que he visto parece ser un frame del timeline de la película).

En el código que posteaste pusiste esto:

Código ActionScript :

//CODIGO DEL BOTON
//Esta variable nos servira para saltarnos el cache y asi siempre
//ver el efecto de precarga, quitala o dejala en blanco si no
//lo deseas
var nochache:String;
//En el evento onRelease del boton . . . 
cargar_btn.onRelease = function() {
   nocache = "?nocaching="+random(65000);
   //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo
   //"pelicula.swf" y que lo muestre en "carga_mc" :D
   precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);
};


Por lo tanto ahí mismo es donde va el código, remplaza el camino al botón y no lo busques en la raiz.

Y para lo otro que deseas, primero debes descargar y enseguida cargar, algo como esto:

Código ActionScript :

caja_mc.unLoadMovie();
precargador_mcl.loadClip("Pelicula.swf"+nocache, caja_mc);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 05 Sep 2008 10:27 am
gracias chininet... me aclaras muchisimo... por ahora todo resuelto..., puedes ver si quieres el progreso en www.ar-ea.es el dominio no lo he elegido yo, y han elegido un guion, creo q es un fallo bastante gordo...
no te preocupes que seguro me asaltan mas dudas jejeje. gracias de nuevo.

Por brigi

48 de clabLevel



 

Sevilla

msie7

 

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