Comunidad de diseño web y desarrollo en internet online

duplicatemovieclip

Citar            
MensajeEscrito el 16 Nov 2005 03:16 am
holas, como hago para duplicar con una accion varias veces un mc al mismo tiempo?
onMouseDown = function() {
duplicateMovieClip(_root.cuadrado_mc,"cuadrado_mc"+i, i);
i++;
}

con eso hago que duplique un mc cada ves que clickeo pero quiero que duplique 10 al mismo tiempo ya que despues se van a mover por la pantalla
saludos :?

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 16 Nov 2005 03:23 am

Código :

onMouseDown = function() {
for (i=0;i<10;i++){
      duplicateMovieClip(_root.cuadrado_mc,"cuadrado_mc"+i, i);
}
}

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Nov 2005 05:42 pm
:D gracias por responder tan rapido, ahora mismo lo pruebo ^^
seguro que dentro de poco vuelvo a preguntar algo :lol:
saludos

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 16 Nov 2005 06:29 pm
tengo un problema, cuando clickeo, se duplica 10 veces ocmo queria pero cuando lo vuelvo a hacer, los de la primera ves desaparecen y aparecen donde volvi a clickear... como hago para que se dupliquen 10 veces al mismo tiempo y a la vez que no desaparescan ?
saludos

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 16 Nov 2005 06:54 pm
en el último parámetro,el de profundidad, pon _root.getNextHighestDepth.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Nov 2005 07:22 pm
hola, no me funciona :(

seria algo asi?

Código :

onMouseDown = function () {
   for (i=0; i<100; i++) {
      duplicateMovieClip(_root.cuadrado, "cuadrado"+i, _root.getNextHighestDepth);
   }
};

si es asi no me funciona, cuando clickeo solo se duplica 1 y no 100 y ademas vuelvo a clickear despues y sigue desapareciendo y vuelve a duplicarse uno donde clickee...

otra preg, al cuadrado le puse

Código :

onClipEvent (load) {
   _x = _root._xmouse;
   _y = _root._ymouse;
}
onClipEvent (enterFrame) {
   _x += random(10)-5;
   _y += random(10)-5;
}

lo que quiero es que sea random y que valla para cualquier lado pero me parece que suele irse para arriba a la izquierda, como puedo encontrar el medio justo?osea que realmente se mueva lo mismo para cualquier lugar
gracias

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 16 Nov 2005 07:27 pm

Código :

onMouseDown = function () {
   for (i=0; i<10; i++) {
      prof= _root.getNextHighestDepth();
      duplicateMovieClip(_root.cuadrado, "cuadrado"+prof, prof);
   }
};


los nombres ni las profundidades pueden ser iguales a otros porque sino el nuevo sustituye al anterior, por eso desaparecian.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Nov 2005 07:41 pm
gracias :D ahora si me funciono 8)
con respecto al movimiento del cuadrado

Código :

onClipEvent (enterFrame) { 
   _x += random(10)-5; 
   _y += random(10)-5; 
} 

hay alguna forma de tener un movimiento al azar y para todas las direcciones igual, que no sea ese porque no se porque pero los cuadrados suelen ir hacia arriba a la izquierda:S
saludos

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 16 Nov 2005 08:29 pm
Claro que van en esa direccion, con más velocidad o menos, pero en tu code no hay posiblidad de dar valores negativos (para ir abajo y la derecha). Se puede hacer aplicando el teorema de Pitágoras, pero creo que es más fácil elegir un ángulo al azar, y aplicando las funciones trigonométricas, conseguir una dirección aleatoria. Pero ten en cuenta que los cuadrados se acabaran saliendo si no lo impides, por ejemplo haciendo que l salir aparezcan en el otro lado.

Código :

var speed:Number = 5;
var angle:Number = Math.random()*360;
var K:Number = Math.PI/180;
var xspeed:Number = speed*Math.sin(angle*K);
var yspeed:Number = speed*Math.cos(angle*K);
this.onEnterFrame = function() {
   this._x += xspeed;
   this._y += yspeed;
};

PS: Esto va en el primer fotograma de tu mc.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 17 Nov 2005 12:23 am
gracias por tu respuesta zah, me podrias explicar un poco porque estan todos con var, que es K en tu codigo y porque tiene que usarse seno y coseno :P o mejor si sabes algun tutorial de la parte de todos los math y como usar los angulos :music:
en realidad lo que intento imitar es el efecto que tiene el mouse en la parte del menu del siguiente juego...
http://www.gamesreloaded.com/play/285
pero es aparte, porque lo que quiero es aprender a hacerlo, no es que lo necesito...
saludos

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 17 Nov 2005 06:44 pm
Vayamos por partes:
1- K es la constante por la que hay que multiplicar los radianes para convertirlos en grados (360º=2π radianes, luego un grado es PI/180 radianes) ya que las funciones trigonométricas de Math piden radianes.

2- Para controlar ángulos las tres funciones básicas de Math (a no ser que master ICEM4N diga otra cosa) son:

Código :

r*Math.sin(angulo);//devuelve la coordenada x de un punto en una circunferencia con radio=r, y rotando "angulo"
r*Math.cos(angulo);//lo mismo, pero devuelve la _y
-Math.atan2(deltaX,deltaY)/K;//averigua una rotación a partir de un punto

En el último, deltaX es la coordenada x del punto, pero teniendo como sistema de referencia los del mc que quieras rotar ( para eso restas el _x de tu mc y la _x del punto), y otro tanto con deltaY.

3- El de Cristalab está muy bien, aunque es algo más básico http://www.cristalab.com/tutoriales/18/trigonometria_basica_en_flash_mx_2004
Yo aprendí a hacerlo con los ejemplos del Flash Mx, que con un poco de tiempo, son muy instructivos.
4- El efecto (sólo el de cuando le das al mouse) sería este:

Código :

var lo:Object = new Object();
var depth:Number;
Mouse.addListener(lo);
lo.onMouseDown = function() {
   for (i=0; i<30; i++) {
      depth = _root.getNextHighestDepth();
      _root.attachMovie("bola", "bola"+depth, depth);
      suj = _root["bola"+depth];
      suj.speed = 5+Math.random()*20;
      suj.angle = 2*Math.PI*Math.random();
      suj._x = _xmouse;
      suj._y = _ymouse;
      suj.onEnterFrame = function() {
         this._x += this.speed*Math.sin(this.angle);
         this._y += this.speed*Math.cos(this.angle);
         this.speed *= .85;
         this._y += 5;
         if (this._y>Stage.height) {
            this.removeMovieClip();
         }
      };
   }
};


Poniendo un clip de película de aprox 5x5 pixels y con nombre de vinculación "bola"

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 27 Mar 2007 05:26 pm
que tal!!!

disculpen yo no puedo hacer que mi mc se duplique...
en la primera capa en el primer frame tengo esto:
for (i = 0; i <= 6; i++) {
duplicateMovieClip ("flecha", "flechas" + i, i);
}
y en la segunda capa esta mi mc que se llama flecha;
porque no me funciona

Gracias :D

Por Chevy

165 de clabLevel

1 tutorial

Genero:Masculino  

Ecuador

firefox

 

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