Comunidad de diseño web y desarrollo en internet online

precarga multiple pero en niveles ayuda

Citar            
MensajeEscrito el 01 Dic 2009 01:32 am
hola buenas! gracias al tutorial que hay en esta web logre hacer una precarga multiple, y funciona, pero tengo dos problemas:
yo cargo 2 swf, uno es botonera y el otro es home.
1 -el tema es que mi botonera es desplegable, y pisaria al home, yo lo que hacia era cargar una en nivel 20 y la otra en nivel 10. El problema es que la programacion de la precarga multiple no encuentro donde ponerle el nivel;
2- No reconoce bien la programacion de las sub-botoneras, estas estan visibles al inicar (luego de pasar con el mouse por ahi, desapaerecen y funciona ok)

este es mi codigo

Código ActionScript :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
   clip._visible = false;
   clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
   porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
   porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
   preload.gotoAndStop(porcentajeTotal);
   preload.cargando.text = "Loading: " + list_nombres[cargando];
}
function onLoadInit(clip:MovieClip)
{
   cargando++;
   cargaMultiple();
}
//--------------------------
function cargaMultiple(queX:Number, queY:Number)
{
   if (!cargando) {
      cargando = 0;
      this.attachMovie("preload", "preload", this.getNextHighestDepth());
      preload._x = queX;
      preload._y = queY;
   }
   if (cargando < list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
   } else {
      for (i = 0; i < list_swfs.length; i++) {
         this[list_contenedor[i]]._visible = true;
         this[list_contenedor[i]].play();
      }
      removeMovieClip(preload);
   }
}
//--------------------------
var list_swfs:Array = ["botonera.swf", "home.swf"];
var list_contenedor:Array = ["menu1", "menu2"];
var list_nombres:Array = ["Menu", "Home"];
cargaMultiple(400, 300);
//--------------------------

esta subido en link
mil gracias por leer y si pueden ayudar
saludos
marina

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Dic 2009 02:29 am
cocky_mar, te paso a responder:


  1. Estas cargando sobre MovieClips no por Levels. Ergo lo que tendrías que hacer es cambiar la profundidad de esos clips. Puedes hacerlo sencillamente con

    Código ActionScript :

    menu1.swapDepths(20);

  2. Se te jode la "visibilidad" porque existen algunos clips que imagino no quieres poner en _visible, sin embargo esta parte del código se contradice con eso:

    Código ActionScript :

    for (i = 0; i < list_swfs.length; i++) { 
             this[list_contenedor[i]]._visible = true; 
             this[list_contenedor[i]].play(); 
          }


    Sino quieres hacer visible un clip en particular podrías armar algo como una "lista de excepciones", de esta forma evaluar, que si tu clip NO esta dentro de esa lista, ponga true, sino lo deje en false.


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 01 Dic 2009 03:20 am
Gracias Hernan!
ok, ya logre solucionar el problema 2 (cambiando lo de la visivilidad pero en la ruta (estaba en _root y ahora es this)
el problema 1 puse el codigo que me mandaste y genial, menu1, carga en el nivel 20, pero menu2 sigue en nivel 0

Yo necesito que mi archivo contenedor (index.swf) llame a botonera.swf en el nivel 20 y a home.swf en el 10, que tenga el preloader multiple porque la botonera pesa mas que el home (y no queda bien)
ademas la botonera llama por nivel 10 o otros archivos que reemplazarian al home
se entiende??
espero que si
gracias
saludos
marina

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Dic 2009 04:06 am
Pues es lo mismo que para el otro ¿No crees?

Código ActionScript :

menu2.swapDepths(10);


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 02 Dic 2009 01:06 am
jaja si ya lo habia probado, pero cuando desde botonera llamo a un swf, en nivel 10, este no lo reemplaza, sino que lo pisa como si estubiera en otro nivel
muchas gracias

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Dic 2009 01:18 am
No entendí nada. Si te pisa otro level, entonces pasalo al nivel 20 y el otro al nivel 30 y ya.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 02 Dic 2009 01:37 am
Hola perdon me intentare explicar mejor.
este es mi codigo en el index.swf:

Código :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
   clip._visible = false;
   clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
   porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
   porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
   preload.gotoAndStop(porcentajeTotal);
   preload.cargando.text = "Loading: " + list_nombres[cargando];
}
function onLoadInit(clip:MovieClip)
{
   cargando++;
   cargaMultiple();
}
//--------------------------
function cargaMultiple(queX:Number, queY:Number)
{
   if (!cargando) {
      cargando = 0;
      this.attachMovie("preload", "preload", this.getNextHighestDepth());
      preload._x = queX;
      preload._y = queY;
   }
   if (cargando < list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
   } else {
      for (i = 0; i < list_swfs.length; i++) {
         this[list_contenedor[i]]._visible = true;
         this[list_contenedor[i]].play();
      }
      removeMovieClip(preload);
   }
}
//--------------------------
var list_swfs:Array = ["botonera.swf", "home.swf"];
var list_contenedor:Array = ["menu1", "menu2"];
var list_nombres:Array = ["Menu", "Home"];
menu1.swapDepths(30);
menu2.swapDepths(20);
cargaMultiple(400, 300);

//--------------------------


el problema es que en botonera.swf yo llamo a otros swfs que tinen que reemplazar a home.swf
por medio de este codigo :

Código :

on (press) {
loadMovieNum("contacto.swf", 10);
}

y no lo reemplaza; el contacto.swf pisa a botonera.swf y a home.swf

espero haber sido mas clara
muchas gracias
saludos
marina

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Dic 2009 02:01 am
Si quieres reemplazarlo entonces cargar contacto.swf en un MC o dale la directiva de carga con:

Código ActionScript :

on(press){
loadMovieNum("home.swf",10);
}


Por cierto, ya nadie usa on(press)

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 02 Dic 2009 02:23 am
jajaj no se si reir o llorar, falta tan poco y no me se explicar buaaa.
Ya le estoy dando la directiva de reemplazar el nivel 10 desde un boton en botonera.swf, pero no reemplaza al nivel 10 de home.swf , este lo pisa es mas queda arriba de botonera.swf, que estaba cargada en nivel 20.

perdon por lo anticuada no sabia que ya no se usa jajjaja
saludos
marina

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Dic 2009 02:32 am
Creo entenderte... vagamente...

Si es lo que yo creo, ten cuidado, porque:

Código ActionScript :

menu2.swapDepths(10);


No da la directiva de ponerse en un level de un loadMovieNum, ejemplo:

Código ActionScript :

menu2.swapDepths(10);
loadMovieNum("algo.swf",10);


En ese caso te quedará el algo.swf arriba de menu2. El swapDepths funciona solo con MovieClips. Si quieres controlar mejor tu Movie, no cargues usando loadMovieNum, sino un normal loadMovie, asi puedes controlar fácilmente tu MovieClip contendedor de "secciones".

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 02 Dic 2009 02:39 am
ok, muchas gracias por la paciencia y la data
lo voy a hacer por movieclips
saludos
marina

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Dic 2009 02:42 am
exelente ahora funciona perfecto
lo agregue el siguiente codigo al boton:

Código ActionScript :

on (release) {
loadMovie("contacto.swf",_root.menu2);
}

funciona perfectamente
saludos y muchisimas gracias

Por cocky_mar

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Dic 2009 02:44 am
Consejo:

Es más prolijo así:

Código ActionScript :

on(release){
    menu2.loadMovie("contacto.swf");
}


Y obviamente mucho mejor:

Código ActionScript :

myBt.onRelease=function(){
    menu2.loadMovie("contacto.swf");
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

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