Comunidad de diseño web y desarrollo en internet online

Ordenar acciones a un swf externo

Citar            
MensajeEscrito el 02 Sep 2008 01:34 pm
Hola gente!
tengo un swf que se llama menu.swf en el nivel 0 desde el cual se cargan los diferentes apartados de la web en el nivel1.
Cuando la página carga, lo primero es el menu.swf en el nivel 0 y después automaticamente empieza la precarga de inicio.swf en el nivel1.
En el swf inicio hay un boton que al presionarlo quería que ordenase a "menu.swf" que cargue otro swf en el sitio de inicio.swf, es decir, en el nivel1.

Se puede hacer esto?


muchas gracias por vuestra ayuda ;)


saludos!

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 03:48 pm
Prueba algo como:

_level1.loadMovie("algun.swf") o loadMovieNum("algun.swf", 1)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 04:01 pm
gracias por tu rápida respuesta solisarg!

Lo que me dices es para cargar un swf en el nivel 1.

Yo quería desde un swf en el nivel 1, darle la orden al swf del nivel 0 (menu.swf) que cargue un swf en el nivel1 (sustituyendo al swf del nivel1 que dió la orden al nivel0).

No se si me explico.... xD

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 04:18 pm
El nivel 1 es uno solo, cuao usas una ruta absoluta (_level1) se toma desde la raíz. Puedes sino para simplificar usar un contenedor (MovieClip vacío) en vez de niveles, entonces usarías unaa ruta del tipo _root.contenedor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 04:29 pm
claro... es uno solo, por eso digo de dar la orden desde el nivel 1 al nivel 0 para que cargue el swf en el nivel 1 (sustituyendo al swf desde el que di la orden).......

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 04:46 pm
¿Probaste _level1.loadMovie("algun.swf") ?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 04:54 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 08:24 pm
gracias por tu ayuda solisarg!
A ver, no es una galeria.
Es una web.
Tengo un archivo en el nivel0 que se llama menu.swf y es la base de la página, la cabecera, los botones... etc y es donde está la barra de precarga. Después las secciones de la web, son swf que cargo en el nivel1 con este AS

Código ActionScript :

 mcl.loadClip("inicio.swf",1); 

para cargar otra sección, lo que tengo es el siguiente AS para que cada boton cargue su correspondiente sección:

Código ActionScript :

 _level1.unloadMovie;
   mcl.loadClip("situacion.swf",1); 


Pues lo que pretendo, es desde un boton que tengo en inicio.swf (que está cargado en el nivel1) dar la orden a menu.swf (que es donde están los botones, el clip de precarga y toda la base de la web y está en NIVEL0) que cargue otro archivo en el nivel1 sustituyendo al inicio.swf
__________________

Si utilizo el _level1.loadMovie("algun.swf") en el boton de inicio.swf (nivel1) lo que conseguiré será sustituir este clip, pero no que me aparezca la barra de precarga que tengo en el menu.swf (nivel0).
Por eso pregunto si es posible hacer esto o no.

Espero que ahora me haya explicado bien.


Un saludo y muchas gracias por la atención prestada ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 08:53 pm
Vale, veo que confundes los niveles. _level1 no es lo mismo que cargar en el nivel 1 de mcl, son cosas distintas.
Luego dado que usas un contenedor (mc1), siempre tienes que cargar allí, y tienes que tener una función de precarga que monitorize ese container, ejemplo

Código ActionScript :

function carga(que){
   mc1.loadMovie(que)
   this.onEnterFrame = function(){
     var loaded = mc1.getBytesLoaded()
     var total = mc1.getBytesTotal()
     var per = int((loaded*100)/total)+" % "
    //... muestras el texto, o escalas tu barra
   if(loaded>=total && total>4) delete this.onEnterFrame
  }
}


Ahora la función carga, que está en la peli principal es la que se encarga de cargar las secciones

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 09:12 pm
Veo que no me acabo de explicar bien. Cuando digo niveles me refiero siempre a _level0 y _level1.
en el _level0 tengo el menu.swf con este

Código ActionScript :

 //precarga
var mcl:MovieClipLoader = new MovieClipLoader();

var mclL:Object = new Object();

mclL.onLoadStart = function() {
   var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 305.8, 244, 1, true);
   var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 398.8, 337, 1, true);
};

mclL.onLoadProgress = function(target, loaded, total) {
   loader.barra._xscale = Math.round((loaded/total)*100);
};


mcl.addListener(mclL);

mcl.loadClip("inicio.swf",1); 


Esto me carga un swf en el _level1 que se llama inicio.swf
Pues bien, en inicio.swf tengo un boton que quiero que al presionar le de la orden a menu.swf (_level0) de que cargue otro swf en el _level1 ( sustituyendo a inicio.swf)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Sep 2008 09:26 pm
Ok, es un MovieClipLoader (mi ejemplo usaba un preload normal)
La idea es la misma: para poder reutilizar, tienes que meter ese code dentro de una función, la peli que carga la recibe como argumento, luego deberás resetear los tweens y la barra (que quedan en su posición final, me refiero a logo y loader)
Siempre la clave de la reutilización es usar funciones (o métodos de clases si trabajas en OOP)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2008 10:02 am
Hola Solisarg!
Podrías ponerme un ejemplo de como meter ese codigo dentro de una función para después reutilizarlo?


Muchas gracias ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 10:29 am
Algo así

Código ActionScript :

function precarga(que){
   //reiniciar valores de tween
   logo._alpha = 100
   logo._y = 305
   loader._alpha = 0
   loader._y = 399
   loader.barra._xscale = 1
   //precarga
   var mcl:MovieClipLoader = new MovieClipLoader(); 
   var mclL:Object = new Object(); 
   mclL.onLoadStart = function() { 
      var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 0, 100, 1, true); 
      var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 305.8, 244, 1, true); 
      var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 0, 100, 1, true); 
      var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 398.8, 337, 1, true); 
   }; 
   mclL.onLoadProgress = function(target, loaded, total) { 
      loader.barra._xscale = Math.round((loaded/total)*100); 
   }; 
   mcl.addListener(mclL); 
   mcl.loadClip(que,1); 
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2008 10:43 am
vale... pero esto va en el menu.swf
pero qué es lo que tengo que poner en el botón de inicio.swf para que le de la orden a menu.swf de que cargue otro swf?

gracias por tu paciencia solisarg ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 10:48 am
_parent.precarga("algun.swf")

Adecía la ruta para llegar a la función, puedes incluso usar una ruta absoluta como _root.precarga, aunque siempore es aconsejable usar _parent

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2008 11:20 am

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 11:43 am
Sigue preguntando en el hilo, ni privados ni MSN, sorry

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2008 12:10 pm
esq por aqui es un poco roio jejejeje
te cuento:

en el archivo principal (menu.swf) puse este actionscript:

Código ActionScript :

function precarga(que){
var mcl:MovieClipLoader = new MovieClipLoader();

var mclL:Object = new Object();

mclL.onLoadStart = function() {
   var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 305.8, 244, 1, true);
   var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 0, 100, 1, true);
   var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 398.8, 337, 1, true);
};

mclL.onLoadProgress = function(target, loaded, total) {
   loader.barra._xscale = Math.round((loaded/total)*100);
};


mcl.addListener(mclL);

mcl.loadClip("inicio.swf",1);
_root.botones.btn1.gotoAndStop(2);



mclL.onLoadInit = function() {
   var tween:Tween = new Tween(logo, "_alpha", Strong.easeOut, 100, 0, 1, true);
   var tween2:Tween = new Tween(logo, "_y", Strong.easeOut, 244, 305.8, 1, true);
   var tween3:Tween = new Tween(loader, "_alpha", Strong.easeOut, 100, 0, 1, true);
   var tween4:Tween = new Tween(loader, "_y", Strong.easeOut, 337, 398.8, 1, true);
   tween.onMotionFinished = function() {
      _level1.play();
   };
};
}
_root.precarga("inicio.swf");


Así cuando carga, me carga el inicio.swf


En el boton de inicio.swf puse:

_parent.precarga("proyecto.swf")

pero no me funciona. No le da la orden a menu.swf para que cargue el proyecto.swf y sustituya a inicio.swf


Además con el AS de la precarga, después no me funcionan correctamente los botones de menu.swf para cargar las otras secciones. En los botones de menu.swf tenía puesto este AS:

Código ActionScript :

_root.botones.btn3.onRelease = function() {
   _level1.unloadMovie;
   mcl.loadClip("proyecto.swf",1);


};

y ahora al cambiar el AS de la precarga ya no me funciona, por lo que intenté cambiarlo por esto:

Código ActionScript :

_root.botones.btn3.onRelease = function() {

   _level1.unloadMovie;
   _root.precarga("proyecto.swf",1);
};




Espero no hacerme pesado :( pero es que no consigo ponerlo a funcionar :(


saludos y gracias ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 12:33 pm
Bien, vemos dos cosas:

1. Llegar a llamar a la función
2. Que la función marche

Parece que aún no hemos pasado el punto 1, es decir la función parece que no se llama ¿Es realmente así? Para esto hay que entender el concepto de alcance (scope)

¿La llamada está en la misma línea de tiempo? Entonces _parent no hace falta. ¿La ruta absoluta es _root.precarga? Entonces un trace (desde cualquier lado) como este:

trace(_root.precarga) //la salida es [type function]

Otra cosa que puedes hacer es agregar un trace dentro de la función precarga para ver si es llamada. Si no es llamada es un tema de rutas, averigua la ruta correcta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2008 01:26 pm
Buff.. menudo lio :(

¿La llamada está en la misma línea de tiempo? <-- qué llamada? la del boton de inicio.swf no está en la misma linea de tiempo que el AS de precarga que tengo en el menu.swf

El trace(_root.precarga) dónde lo pongo? En el boton de inicio.swf ?
Está bien el AS que puse como precarga?

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2008 01:35 pm

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.