Comunidad de diseño web y desarrollo en internet online

objetos que aparescan con ordean aleatorio random

Citar            
MensajeEscrito el 23 Sep 2006 02:39 am
por ejemplo tengo 3 MC, en posiciones determinadas, y quiero que estos MC aparescan en el escenario siempre de forma distinta, aleatoria, o sea que apresca el mc 1 primero despus el 3 , despues el 2... por ejemplo y que la próxima vez que lo abra aparesca el 2 primero el 3despues y al ultimo el 1... se entiende , al azar

cómo ??

debe ser fácil con random... pero no se cómo

Gracias

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Sep 2006 09:42 am

Código :

mcs = new Array(mc0, mc1, mc2);
ln = mcs.length;
for (i=0; i<ln; i++) {
   rand = Math.floor(Math.random()*mcs.length);
   mcs[rand]._x = 100*i;
   mcs.splice(rand, 1);
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 23 Sep 2006 06:53 pm
no cargan... no devería tener un attach movie o algo así ?

Gracias.

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Sep 2006 08:49 pm
intente esto:

_root["clip"+rand]._x = 100*i; esto va antes de cerrar el bucle!!!

pero sus 3 clips se tienen que llamar clip0, clip1,clip2

Espero le funcione!!!!

Por Andres

10 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 Sep 2006 09:52 pm
yo prefiero usar un código para cada MC. Por ejemplo:

Código :

primero_mc._x = random(ancho de tu animacion más 1)
primero_mc._y = random(ancho de tu animacion más 1)

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 23 Sep 2006 10:08 pm
El código para cargar ponlo antes, y llama a los mcs mc0, mc1 y mc2.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 24 Sep 2006 12:43 am
o sea esto:

mcs = new Array(mc0, mc1, mc2);
ln = mcs.length;
for (i=0; i<ln; i++) {
_root["mc"+rand]._x = 100*i
rand = Math.floor(Math.random()*mcs.length);
mcs[rand]._x = 100*i;
mcs.splice(rand, 1);

}

por que no funciona, será por que tengo el flash 8 ??

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 24 Sep 2006 10:21 am
no, no tiene nada que ver con flash 8 (es el que usamos la mayoría).
No se, prueba con lo que te he dado yo, que eso funciona.

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 24 Sep 2006 07:50 pm
ya, gracias. Mira estoy algo confundido, yo no soy sabiondo en el tema pero, con el código que me diste...

primero_mc._x = random(ancho de tu animacion más 1)
primero_mc._y = random(ancho de tu animacion más 1)

estamos manipulando la posición x -y del MC en el escenario ???

poe que eso no es lo que nescecito, sino que el orden de aparición sea al azar, o sea uno primero, otro después y otro al final. Y que siempre el orden de aparición sea distinto, pero en un a posición definida e inalterable, no una posición al azar.

Gracias.

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 24 Sep 2006 08:26 pm

kiltroconpulgas escribió:

poe que eso no es lo que nescecito, sino que el orden de aparición sea al azar, o sea uno primero, otro después y otro al final. Y que siempre el orden de aparición sea distinto, pero en un a posición definida e inalterable, no una posición al azar.

Hola.
1-Coloca tus tres MovieClips en el mismo fotograma y en la posición que quieras
2-Llama ha estos clips --> mc0, mc1, mc2
3-En ese fotograma coloca este código:

Código :

mcs = new Array("mc0", "mc1", "mc2");
mc0._visible = mc1._visible = mc2._visible = false;
intervalo = setInterval(this, "visualiza", 1000);
visualiza();
function visualiza() {
   if (mcs.length > 0) {
      rand = Math.floor(Math.random() * mcs.length);
      this[mcs[rand]]._visible = true;
      mcs.splice(rand, 1);
   } else {
      clearInterval(intervalo);
      play();
   }
}
stop();

Este código hará que al llegar a ese fotograma los tres clips se harán invisibles, y se vayan haciendo visibles uno a uno y de forma aleatoria.
El valor 1000 del setInterval indica 1 segundo de espera entre la aparición de un clip al siguiente...
a ver si esto se ajusta más a lo que quieres.
:wink:

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 25 Sep 2006 03:25 am
Si, perfecto...

Muchas gracias.

Ahora que pasa si quisiera hacerlo con un blur 0 a un blur 100 , en véz de que solo aparescan ???

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Sep 2006 09:20 am

kiltroconpulgas escribió:

Si, perfecto...

Muchas gracias.

Ahora que pasa si quisiera hacerlo con un blur 0 a un blur 100 , en véz de que solo aparescan ???

Prueba:

Código :

mcs = new Array("mc0", "mc1", "mc2");
mc0._visible = mc1._visible = mc2._visible = false;
intervalo = setInterval(this, "visualiza", 1000);
visualiza();
function visualiza() {
   if (mcs.length > 0) {
      rand = Math.floor(Math.random() * mcs.length);
      this[mcs[rand]]._visible = true;
      this[mcs[rand]]._alpha = 0;
      this[mcs[rand]].onEnterFrame = fundido;
      mcs.splice(rand, 1);
   } else {
      clearInterval(intervalo);
      play();
   }
}
function fundido() {
   this._alpha += 10;
   (this._alpha >= 100) ? delete onEnterFrame : null;
}
stop();

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 25 Sep 2006 03:46 pm
Si, está super pero la idea sería que fuese con un blur... intenté esto:

Código :

import flash.filters.*;
//----------------------------------
mcs = new Array("mc0", "mc1", "mc2");
mc0._visible = mc1._visible = mc2._visible = false;
intervalo = setInterval(this, "visualiza", 200);
visualiza();
function visualiza() {
   if (mcs.length > 0) {
      rand = Math.floor(Math.random() * mcs.length);
      this[mcs[rand]]._visible = true;
      this[mcs[rand]].BlurFilter([blurX:0], [blurY:0], [quality:0]);
      this[mcs[rand]].onEnterFrame = fundido;
      mcs.splice(rand, 1);
   } else {
      clearInterval(intervalo);
      play();
   }
}
function fundido() {
   this.BlurFilter([blurX:+=10], [blurY:+=10], [quality:+=10]);
   (this.BlurFilter >= 100) ? delete onEnterFrame : null;
}
stop();


pero me tira error, supongo que el blur tengo que expresarlo de otra forma... y pensadolo bien creo que el efecto se lograría mejor si fuese de un blur bien difuso hasta un enfoque 100%, espero que me puedan ayudar, siento que el asunto está casi listo, solo falta eso ,Gracias

PD: aún no entiendo como ingresar ese campo para el código. Gracias.

* Moderador: Agregada las etiqueta code

Por kiltroconpulgas

96 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Sep 2006 04:35 pm

Código :

import flash.filters.BlurFilter;
mcs = new Array("mc0", "mc1", "mc2");
mc0._visible = mc1._visible = mc2._visible = false;
intervalo = setInterval(this, "visualiza", 2000);
visualiza();
function visualiza() {
   if (mcs.length > 0) {
      rand = Math.floor(Math.random() * mcs.length);
      this[mcs[rand]]._visible = true;
      this[mcs[rand]]._alpha = 0;
      xb = 50;
      yb = 50;
      q = 2;
      var blur:BlurFilter = new BlurFilter(xb, yb, q);
      var filtros:Array = new Array();
      filtros.push(blur);
      this[mcs[rand]].filters = filtros;
      this[mcs[rand]].onEnterFrame = fundido;
      mcs.splice(rand, 1);
   } else {
      clearInterval(intervalo);
      play();
   }
}
function fundido() {
   if (xb > 0) {
      xb -= 5;
      yb -= 5;
      q = 2;
      var blur:BlurFilter = new BlurFilter(xb, yb, q);
      var filtros:Array = new Array();
      filtros.push(blur);
      this.filters = filtros;
   }
   if (this._alpha < 100) {
      this._alpha += 10;
   }
   if (this._alpha >= 100 & xb <= 0) {
      delete this.onEnterFrame;
   }
}
stop();

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 25 Sep 2006 06:00 pm
tuve un único problemita...

mi idea es hacerlo con muchos MCs:

import flash.filters.BlurFilter;
mcs = new Array("mc0", "mc1", "mc2","mc3", "mc4", "mc5");
mc0._visible = mc1._visible = mc2._visible = mc3._visible = mc4._visible = mc5._visible = false;;
intervalo = setInterval(this, "visualiza", 200);
visualiza();
function visualiza() {
if (mcs.length > 0) {
rand = Math.floor(Math.random() * mcs.length);
this[mcs[rand]]._visible = true;
this[mcs[rand]]._alpha = 0;
xb = 50;
yb = 50;
q = 2;
var blur:BlurFilter = new BlurFilter(xb, yb, q);
var filtros:Array = new Array();
filtros.push(blur);
this[mcs[rand]].filters = filtros;
this[mcs[rand]].onEnterFrame = fundido;
mcs.splice(rand, 1);
} else {
clearInterval(intervalo);
play();
}
}
function fundido() {
if (xb > 0) {
xb -= 5;
yb -= 5;
q = 2;
var blur:BlurFilter = new BlurFilter(xb, yb, q);
var filtros:Array = new Array();
filtros.push(blur);
this.filters = filtros;
}
if (this._alpha < 100) {
this._alpha += 10;
}
if (this._alpha >= 100 & xb <= 0) {
delete this.onEnterFrame;
}
}
stop();

el problema está en que el tiempo que demora en aparecer todos es mucho, por lo que reduje el intervalo a 200 que me pareció una buena velocidad, lamentablemente de esta forma a no todos los MCs se le aplica el blur = 0 ... algunos llegan al stop con blur y así se quedan...

Gracias.

Por kiltroconpulgas

96 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2006 01:59 am
a que se deverá el error ???

Por kiltroconpulgas

96 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2006 04:23 pm
Novedades del problema:

Sigo metido en el asunto, publiqué mi problema en el mmug también

http://www.mmug.cl/foros.php?id2=20060925192823&id=20060925192823&lalin=0:as&niv=10&dat=&apl=as&sinres=

ahí subí el archivo para que hagan pruebas si quieren, lo raro es que una persona bajó el archivo y me respondió, y el me cuenta que a el le funciona bien... de hecho me devolvió el archivo y a mi me sigue sin funcionar, agradecería que lo revisaran en esa dirección.

Gracias.

Por kiltroconpulgas

96 de clabLevel



 

safari

 

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