Comunidad de diseño web y desarrollo en internet online

ARRASTRAR MOVIECLIP INDEFINIDAMENTE

Citar            
MensajeEscrito el 11 Mar 2009 09:18 pm
Hola a todos, hay algo que necesito hacer pero no se si se pueda :oops: , necesito crear varios moviclips, de manera que el usuario pueda arrastrar cada uno las veces que necesite para formar una figura, como no se cuantos necesita cada usuario necesito que se puedan arrastrar y que no se me acaben, alguiensabe como puedo hacer eso?
A cualquiera que me conteste muchas gracias. :)

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 11 Mar 2009 10:54 pm
Hola alejilla, osea como si tomaras post-it interminables?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 11 Mar 2009 11:24 pm
Hola R pues es que no se que es un post it (perdón), pero tengo una bolita que es un mc, y quiero que cuando yo la coja y la cambie de lugar me aparezca otra donde estaba esta inicialmente, que tambien se pueda arrastrar, como si cuando yo la cojo se reprodujera, no se si me hice entender, y que no se me acaben. Lo mismo con otros mc diferentes. Gracias.

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 12 Mar 2009 12:16 am
Bueno, un postit, son esas notitas que se colocan por ejemplo, cerca del telefono, y cuando uno antoa algo despues lo quita del bloque de postits y lo pega en otro lado.

Bueno, imagina que tu pelotita se llama "pelota_mc", coloca este codigo en la linea de tiempo principal:

Código ActionScript :

this.pelota_mc.onReleaseOutside = function( Void ):Void
{
   stopDrag();
}
pelota_mc.onPress = function( Void )
{
   
   var nivel = this._parent.getNextHighestDepth();
   //Crear clip
   var aux:MovieClip = this.duplicateMovieClip( "clon_" + nivel, nivel );
   trace(aux)
   //Eventos
   aux.onPress = function( Void )
   {
      this.swapDepths(this._parent.getNextHighestDepth());
      this.startDrag();         
   };   
   aux.onPress();
   aux.onRelease = aux.onReleaseOutside = function( Void )
   {
      this.stopDrag(); 
   }
}


Y listo, creo que eso es lo que necesitas, Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Mar 2009 01:18 am
Hola muchas gracias, tu siempre tan oportuno, solo puedo ensayarlo hasta mañana porque mi pc tiene como un virus y no me deja hacer NADA :cry: :cry: pero te pregunto, si tengo varios mc de ese tipo, pego el mismo codigo por cada mc en el mismo fotograma, cambiando claro los nombres de instancia y queda bien?

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 12 Mar 2009 01:28 am
Si, incluso podriamos hacer una funcion para que no andes repitiendo codigo:

Código ActionScript :

arrastrable(pelota_mc);
arrastrable(pelotota_mc);
arrastrable(pelotaAzul_mc);

function arrastrable( aux:MovieClip ):Void
{
  aux.onReleaseOutside = function( Void ):Void 
  { 
   stopDrag(); 
  } 
  aux.onPress = function( Void ) 
  { 
    
   var nivel = this._parent.getNextHighestDepth(); 
   //Crear clip 
   var aux:MovieClip = this.duplicateMovieClip( "clon_" + nivel, nivel ); 
   trace(aux) 
   //Eventos 
   aux.onPress = function( Void ) 
   { 
      this.swapDepths(this._parent.getNextHighestDepth()); 
      this.startDrag();          
   };    
   aux.onPress(); 
   aux.onRelease = aux.onReleaseOutside = function( Void ) 
   { 
      this.stopDrag();  
   } 
  } 
}


:D

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 12 Mar 2009 03:49 pm
Hola muchas gracias, lo de arrastrar y que se multiplique funciona perfecto, ahora se me generaron dos dudas.

1. Como es algo que estoy trabajando por escenas pasa que cuando paso de escena o de fotograma, los clips arrastrados siguen quedando ahi, y necesito que se borren al darle al boton.

2. Existe la posibilidad de que el usuario pueda girar o transformar de tamaño solo uno de esos mc, como se tendría que acomodar el codigo?.

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 13 Mar 2009 09:53 pm
Holas me imagino que de todos alguien debe saber como hago para que esos movieclips se borren........alguien??.............no??

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 13 Mar 2009 10:33 pm
Perdon por no responder, tuve unas dificultades técnicas.

Para borrar ejecuta esta funcion:

Código ActionScript :

function clean( Void ):Void
{
   for( var i in this )
  {
    if( i.substr(0, 4) == "clon" ) this[i].removeMovieClip();
  }
}


Y listo.

Para que el usuario pueda girar o escalar algun movieclip, tendrias que crear una herramienta que modifique las _xscale _yscale _rotation, cosa que no es tan facil como colocar un codigo. de todas formas aqui en clab hay un "minipaint" te lo descargas y vez como le hacen para que el usuario pueda escalar objetos.

Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 14 Mar 2009 04:50 pm
Ok muchas gracias por tu respuesta, lo buscaré y miraré a ver que tal, cuidate

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 14 Mar 2009 08:21 pm
Holas, por el momento tengo lo de arrastrar el movieclip de forma indefinida, estuve buscando lo de la escalada y encontre este ejemplo:

http://foros.cristalab.com/herramienta-para-escalar-t19883/

Nesesitaria solo escalarlo de un esquina me serviría mucho si pudiera fusionarlos, pero no he podido que me funcione, estuve remplazando algunas cosas pero nada , si alguien sabe como puedo unir las dos cosas le agradezco. Chao :)

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 15 Mar 2009 12:38 am
Bueno, tomando de ejemplo el archivo fla que te descargaste, sustituye el codigo del primer fotograma por este codigo:

Código ActionScript :

arrastrable(mc); 

function scale(mc) {
   mc.onEnterFrame = function() {
      mc._width = mc._parent._xmouse;
      mc._height = mc._parent._ymouse;
      mc._parent.deB_btn._x = mc._width;
      mc._parent.deB_btn._y = mc._height;
      mc._parent.deA_btn._x = mc._width;
      mc._parent.deA_btn._y = mc._y-6;
      mc._parent.izB_btn._y = mc._height;
   };
}
function stopScale(mc) {
   delete mc.onEnterFrame;
}
 
function arrastrable( aux:MovieClip ):Void 
{ 
  aux.onReleaseOutside = function( Void ):Void  
  {  
   stopDrag();  
  }
  aux.onPress = function( Void )  
  {
   var nivel = this._parent.getNextHighestDepth();  
   //Crear clip  
   var aux:MovieClip = this.duplicateMovieClip( "clon_" + nivel, nivel );  
   trace(aux)  
   //Eventos  
   aux.square.onPress = function( Void )  
   {  
      this._parent.swapDepths(this._parent._parent.getNextHighestDepth());  
      this._parent.startDrag();
   };
   aux.deB_btn.onPress = function( Void )
   {
      scale(this._parent.square);
   };
   aux.deB_btn.onRelease = aux.deB_btn.onReleaseOutside = function( Void )
   {
      stopScale(this._parent.square);
   };
   aux.square.onPress();  
   aux.square.onRelease = aux.square.onReleaseOutside = function( Void )  
   {  
      this._parent.stopDrag(); 
   }  
  }  
} 


Con eso debe funcionar, ahora todos los cuadrados grises pueden ser escalados. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 15 Mar 2009 09:47 pm
Hola R, gracias por tu aporte, pero al cambiarlo así ya no me deja arrastrar los otros mc, te acuerdas que te habia dicho que eran varios?, solo necesito que me escale el primero y ya se deja y se multiplica, pero no me deja jalar los otros, por el momento mi codigo es este:

arrastrable(mc);
arrastrable(electron_mc);
arrastrable(proton_mc);
arrastrable(neutron_mc);
arrastrable(nucleo_mc);

Código :

function scale(mc) { 
mc.onEnterFrame = function() {
   mc._width = mc._parent._xmouse;
   mc._height = mc._parent._ymouse;
   mc._parent.deB_btn._x = mc._width;  
   mc._parent.deB_btn._y = mc._height; 
   mc._parent.deA_btn._x = mc._width; 
   mc._parent.deA_btn._y = mc._y-6;
   mc._parent.izB_btn._y = mc._height;
   };
   }
   function stopScale(mc) { 
   delete mc.onEnterFrame; 
   }  
   function arrastrable( aux:MovieClip ):Void 
   {  
   aux.onReleaseOutside = function( Void ):Void 
   {     
   stopDrag();
   } 
   aux.onPress = function( Void )  
   {  
   var nivel = this._parent.getNextHighestDepth(); 
   //Crear clip 
   var aux:MovieClip = this.duplicateMovieClip( "clon_" + nivel, nivel );
   trace(aux)   
   //Eventos 
   aux.square.onPress = function( Void )  
   {   
   this._parent.swapDepths(this._parent._parent.getNextHighestDepth());
   this._parent.startDrag();
   }; 
   aux.deB_btn.onPress = function( Void )   
   {     
   scale(this._parent.square);  
   };  
   aux.deB_btn.onRelease = aux.deB_btn.onReleaseOutside = function( Void )  
   {  
   stopScale(this._parent.square); 
   };  
   aux.square.onPress();   
   aux.square.onRelease = aux.square.onReleaseOutside = function( Void )
   {   
   this._parent.stopDrag();  
   }   
   }  
   }  


Solo me falta que los demas se dejen solo arrastrar y se multipliquen como estaban al principio, solo necesito que se escale el primero. Muchas gracias :wink:

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 15 Mar 2009 10:02 pm
Hola, ya lo solucioné, supongo que no de la forma más abreviada pero funciona, solo separé la funcion de arrastrar de la de escalar del primer mc y listo, muchas gracias por toda tu ayuda.

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 16 Mar 2009 04:52 am
:D perfecto, por cierto, el codigo que te puse, lo probe y si me funciono. :P bueno no importa de todas formas ya esta resuleto.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 30 Jun 2009 11:21 pm
Huy Hermano le agradezco demasiado, estaba bloqueado completamente por esas lineas de codigo y vino usted y me salvo de verdad le agradezco. :cool:

Por ChrCam

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2009 12:23 am
Este código esta súper bien, me ha funcionado perfecto, pero tengo otro problema y no le encuentro solución, yo tengo un tablero donde se van colocando las fichas, pero las fichas deben de quedar solo en lugares correctos, mi tablero tiene 50 posiciones posibles y 5 fichas de diferentes colores, y los niños deberían de tener la posibilidad de llenar el tablero solo en esas 50 posiciones, espero que me puedan ayudar.

Gracias, besos.

Por claudiaF

0 de clabLevel



 

firefox

 

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