Comunidad de diseño web y desarrollo en internet online

aleatoriedad

Citar            
MensajeEscrito el 16 Jul 2005 08:41 pm
hola,, que algien me allude:

Yo tengo cinco clips de pelicula en la biblioteca, y necesito que se mme cargen en pantalla aleatoriameente,, cada vez que se carge la pelicula empiece por uno distinto y valllan saliendo uno tras ootro

AYU :twisted: DA PORFI

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 16 Jul 2005 09:12 pm
Primero dale nombre continuos a los movieclips en la biblioteca ejemplo mc1,mc2,mc3,mc4 y mc5, ahora puedes usar un codigo como este:

Código :

MAX=5; //porque tenemos 5 movieclips
_root.onEnterFrame = function (){
   if (_root.mc==undefined){ //forzamos la primera vez
      i= random(MAX)+1; //escogemos el primero aleatoriamente
      _root.attachMovie("mc"+i,"mc",1); //lo atacheamos
   }
   if (_root.mc._totalframes==_root.mc._currentframe) //si el mc llego al final
   {
      _root.mc.removeMovieClip();    // Quitamos mc
      (i+1>MAX)? i=1 : i++; //seguimos con el proximo
      _root.attachMovie("mc"+i,"mc",1); // lo atacheamos;
   }
   _root.mc.play;   //play al mc atacheado
}

:D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Jul 2005 09:13 pm
ah por cierto, se me olvidaba :crap:

WELCOME TO CRISTALAB :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 17 Jul 2005 11:28 am
Muchas graciias por todo, pro no se que hagoo pero no me sale, renombro los clips como me diijiste, mc1, mc2, etc.., y en el primer fotograma pongo la programación que me dijiste, y por que no me sale?, me lo puedes explicar como lo hago paso a paso, o mandarme un ejemplo al email?

Mi emmail es [email protected]


Y muchas gracias por toodo :love:

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 17 Jul 2005 11:58 am
pienso k tienes k ser mas autosuficiente
y preguntar cosas mas concretas
si no te sale kizas sea por k no estas familiarizado con el entorno

PD:empieza por algo mas facil, y no pidas k lo hagamos y te lo mandemos , tenemos cosas k hacer

Por bu

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jul 2005 01:43 pm
boryi ese error es típico cuando se es nuevo y se intenta trabajar con attachMovie, buena haz unas cositas sencillas:

1. Abre la biblioteca y a cada movieclip le das con el boton derecho le das donde dice Linkage

2 luego te aparece una ventana marca la primera casilla que dice "Export for Actionscript" y ya listo.

3. Prueba de nuevo (Ctrl+Enter) y me cuentas. :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 18 Jul 2005 03:04 pm
graciasMaikel, te lo agradezco, pero si me lo permites otra dudilla, se me cargan los clips, y si yo quiero que se me cargen en unas coordenadas concretas de la pàntalla? He probado con createEmptyMovieClip y dandole unas coordenadas x e y y no me sale, porque puede ser??

Gracias y no os molesto mas

Por boryi

79 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Jul 2005 09:49 pm

Código :

_root.mc_x=100;
_root.mc_y=100;

mmm, aunque si quieres que cada mc de la biblioteca se cargue en una coordenada diferente, tendrias que hacerle un condicional :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Jul 2005 09:14 am
y teniendo en cuenta el clodigo de arriba, donde le pondo el codigo que me has dicho??

_root.mc_x=100;
_root.mc_y=100;l

Por boryi

79 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Jul 2005 01:26 pm

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 20 Jul 2005 02:14 pm
Gracias por tdo Maikel, una duda, al cargar aleatoriamente los clips, si yo quiero que no se repita ninguno de los cinco, que orden utilizaria??
Estoy utilizando la orden "splice" y no me sale, porque puede ser??

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Jul 2005 03:16 pm
Primero esto:

boryi escribió:
Yo tengo cinco clips de pelicula en la biblioteca, y necesito que se mme cargen en pantalla aleatoriameente,, cada vez que se carge la pelicula empiece por uno distinto y valllan saliendo uno tras ootro


yo te entendi es que generar el primer mc alteatoriamente y luego siguiera el orden a partir de ese, es decir, suponiendo que el primero era 3, los siguientes serian 4,5,1,2 y asi sucesivamente, el codigo que yo te di hace eso, no genera todo aleatoriamente solo el primero ahora de que genere todos aleatoriamente debe almacenar los valores en un vector e irlos insertando y buscando en ese mismo vector a ver si el proximo numero generado no este ya en el vector, en caso de que este se busca de nuevo hasta que consiga uno que no este.

te leiste los tutoriales que te dije? :?

no me gusta hacerles las cosas a los demas, prefiero enseñar y que aprendan en vez de yo hacerle las cosas, aqui te dejo un código en que yo hice algo parecido pero con XML solo extrae la parte que te interesa y adaptalo a tu caso :wink: :

Código :

var vector = new Array();
var miXML = new XML();
miXML.ignoreWhite = true;
miXML.load("frase.xml");

maximo = 15; //Cuantos elementos voy a buscar?, lo puse 15 porque tu insistes con 15, pero puedes cambiarlo

miXML.onLoad = function (){
   long = miXML.firstChild.childNodes.length;
   for (i=0;i<maximo;i++){
      R= random(long);
        while (buscar(R)){  //busco hasta que encuentre uno que no este
         R= random(long);
      }
      insertar(R); //inserto
   }
   for (i=0;i<maximo;i++){
      //aqui va el codigo de la caja de texto
      trace(miXML.firstChild.childNodes[vector[i]].attributes.frase);
   }                         
}

function buscar (n:Number):Boolean{
   for (i=0;i<vector.length;i++){
      if (vector[i]==n){
         return true; //fue encontrado
      }
   }
   return false; //no fue encontrado
}
function insertar (n:Number){
   vector[vector.length]=n; //inserto el nuevo numero generado en el vector
}

:D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 20 Jul 2005 04:08 pm
ayudame Maikel, me es urgentisimo por favor!!!, sino, soy hombre muerto

Yo tengo el codigo como sigue:

MAX=5; //porque tenemos 5 movieclips
_root.onEnterFrame = function (){
if (_root.mc==undefined){ //forzamos la primera vez
i= random(MAX)+1; //escogemos el primero aleatoriamente
_root.attachMovie("mc"+i,"mc",1); //lo atacheamos
}
if (_root.mc._totalframes==_root.mc._currentframe) //si el mc llego al final
{
_root.mc.removeMovieClip(); // Quitamos mc
(i+1>MAX)? i=1 : i++; //seguimos con el proximo
_root.attachMovie("mc"+i,"mc",1); // lo atacheamos;
}
_root.mc_x=100;
_root.mc_y=100;
_root.mc.play; //play al mc atacheado
}

Pero se me sigue cargando a pelicula en la esquina suprior izquierda, y no se porque, le cambio las coordenadas y sigue igual, y no encuentro la orden para decirle que si me ha cargado un clip no me lo vuelva a repetir.

Dime solo eso, porfi.

Ahh, y muchisimas gracias por los tutoriales.

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Jul 2005 04:39 pm
a ver mandame los archivos, revisa tu mensajes privados :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 20 Jul 2005 06:49 pm
Maikel, mira tu correo y ayudame!!me estoy desesperando!!

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 22 Jul 2005 08:44 pm
hola Maikel, recibiste lo que te mande??, sion te lo vuelvo a mandar, contestame porfi

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 22 Jul 2005 10:41 pm
listo, revisa tu correo :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Jul 2005 06:01 pm
muchisimas gracias Maikel, permiteme una preguntita mas:

¿¿Como le digo que cuando ya haya cargado los cinco clips, me pase al frame dos de la escena principal??


Y otra vez gracias y saludos desde España

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 Jul 2005 06:21 pm
extracción de mi código:

Código :

 if (vector.length==MAX){ //aqui verificamos si todos los elementos ya
                           //han sido insertados, porque sino entra a un
                        //bucle infinito
         (j+1==MAX)? j=0:j++; //empezamos a recorrer el vector con los elementos
         i= vector[j];
         trace(j);
}

cambia lo que hay dentro de ese if y ponle gotoAndStop(2); o bien gotoAndPlay(2); de acuerdo a tu conveniencia, quedandote algo asi:

Código :

if (vector.length==MAX){ 
      gotoAndStop(2); //<--puede ser asi o
     //gotoAndPlay(2); va a depender de tu conveniencia
}


INSISTO te leiste los tutoriales que te recomende? :?

La idea es que tu aprendas, no que te hagan las cosas.

No lo tomes a mal pero insisto yo prefiero enseñar que hacerles las cosas a los demas. :D

Si tu aprendes no dependerás de los demás :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Jul 2005 06:30 pm
me los estoy estudiando Maikel, gracias, pero esto me urgia mucho, y me he echo un lio, pero ya boy a arender, gracias de todo corazon

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 Jul 2005 06:48 pm
Perdona Maikel, ayudame a terminar esto y no te molesto mas:

He puesto en

if (vector.length==MAX){
gotoAndStop(2);
}

Pero cuando cargan los cinco clips y pasa al fotograma dos, se me vuelven a cargar los clip s encima de lo que esta en el fotograma dos, porque puede ser??

He probado a poner:

if (vector.length==MAX){
_root.attachMovie("otroclip","mc",1);
}

Pero se me siguen cargando los clip encima de este, porque?

Y no me tomes por pesado, porfi, solo necesito aprender

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 Jul 2005 11:02 pm
extracto de código:

Código :

   if (_root.mc._totalframes==_root.mc._currentframe) //si el mc llego al final 
   { 
      _root.mc.removeMovieClip();    // Quitamos mc 
      if (vector.length==MAX){ //aqui verificamos si todos los elementos ya
                           //han sido insertados, porque sino entra a un
                        //bucle infinito
         (j+1==MAX)? j=0:j++; //empezamos a recorrer el vector con los elementos
         i= vector[j];
         trace(j);
      }
      else
            { 
               i= random(MAX)+1; //generamos un numero aleatorio
               while (buscar(i)){ //buscamos a ver si esta
                  i= random(MAX)+1; // si esta entonces buscamos otro
               }
            insertar(i); //el que conseguimo lo insertamos 
         }
      _root.attachMovie("mc"+i,"mc",1); // lo atacheamos; 
   }


dentro del segundo if, el que dice if (vector.length==MAX) quita las lineas que hay dentro de el y pon:

Código :

onEnterFrame=null; 
gotoAndStop(2);


ahora el _root.attachMovie("mc"+i,"mc",1); quitalo de alli y ponlo debajo del insertar(i); que esta dentro del else :wink:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Jul 2005 02:00 pm
Gracias Maikel, me has sacado de un apuro, tambienn lo he resuelto poniendo al mc propiedad visible 0 y mme va a las mil marabilllas.

Muchas gracias, espero alguun dia poder devolverte el favor y alludarte yo a ti,, jje,,je,jje

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 24 Jul 2005 03:23 pm
mmm, lo visible era una opcion, no la mas idonea pero vale. Te invito a que pruebes con la solución que te di :)

Me alegro de que estes intentando por tus propios medios :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 25 Jul 2005 06:46 pm
Hola Maikel, la opción que me has dicho me sale perfectamente tambien, que diferencia entonces hay entre la solución que me has dado o dale visibilidad 0 en el segundo frame???,

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 25 Jul 2005 07:38 pm
mmm, estamos trabajando con attachMovie y le estamos exigiendo recursos(memoria) al cliente, esa es la ventaja de trabajar con attachMovie que el swf final pesa menos que poner todos los objetos en el swf de una vez.

Ahora no nosotros como programadores debemos cuidar de que no estemos usando mas memoria del cliente de la que realmente necesitemos, cuando hacemos removeMovieClip removemos el movieclip atacheado porque ya no lo necesitamos :wink: , ahora cuando si usamos visible solo lo estamos invisible o visible el objeto a la vista del cliente pero el movieclip aun existe para el swf :wink:

Ahora lo del onEnteFrame=null es porque onEnterFrame es invocado cuando ese frame se ejecuta si pasamos al siguiente Frame le decimos que ese evento de alguna manera lo libere porque no lo necesitamos :wink:

:D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 25 Jul 2005 08:50 pm
gracias Maikel, he puesto en cada clip un sonido, y al ejecutarse los cinco clip aleatoriamente y couando pasa al segundo frame y se queda aqui, se me sigue oyendo el
sonido del ultimo clip, he probado a poner en el segundo frame :

stopallsound();

pero se me sigue oyendo el sonido de fondo,
como lo podria arreglar??

Por boryi

79 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 25 Jul 2005 08:56 pm
:?

no lo se todo :lol:

no he trabajado con sonidos porque particularmente ODIO las webs con sonido, pero de todas maneras es:

Código :

stopAllSounds();


no:

Código :

stopallsound();


te falto la "s" y las mayusculas :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

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