Comunidad de diseño web y desarrollo en internet online

crear efecto de agrupar en as2

Citar            
MensajeEscrito el 17 Abr 2009 09:59 pm
hola que tal alguien sabe como puedo crear un efecto de agrupamiento de objetos en flash
supongamos que queremos seleccionar casas o carros o pelotas con un click sobre los clip de pelicula con forma de carro o forma de casa y que se queden seleccionados en grupos........pero que se haga de manera grafica es decir que creemos un recuadro arrastrando el mouse sobre la pantalla en donde seleecionamos las figuras que queden dentro del recuadro facil no?

es la la clasica herramienta de seleccion, de cualquier editor de imagenes. saludos de antemano gracias

Por darome

32 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Abr 2009 02:21 am
Mmm, grossomodo:

tienes dos movieclips, el primer movieclip tiene dentro todos los objetos seleccionables, el segundo movieclip es donde se dibujara el reacuadro seleccionador, el segundo MovieClip esta en 0,0 y es un clip vacio, entonces se crea un Listener del mouse, cuando es presionado, se dibuja un cuadrado que va desde la coordenada del mouse donde se pulso, hasta donde se suelte, el cuadrado se dibuja constatemente en un OnEnterFrame. luego se hace un hitTest a todos los objetos en el otro movieclip, los que den true, se colocan en un Array de seleccionados.

Aqui te dejo un codigo que te puede ir orientando:

Código ActionScript :

var seleccion:MovieClip = this.createEmptyMovieClip("seleccion", this.getNextHighestDepth());
var listener:Object = new Object();
Mouse.addListener(listener);

listener.onMouseDown = function( Void )
{
   var inix:Number = _root._xmouse;
   var iniy:Number = _root._ymouse;
   seleccion.onEnterFrame = function()
   {
      setArea( seleccion, inix, iniy, _root._xmouse, _root._ymouse, 0x0000FF, 50 );
   };
}
listener.onMouseUp = function( Void )
{
   delete seleccion.onEnterFrame;
   evaluar();
}

function evaluar( Void )
{
   var limites:Object = seleccion.getBounds();
   for( var i in limites )
      trace(i+" = "+limites[i]);
}

function setArea( clip:MovieClip, x:Number, y:Number, x_:Number, y_:Number, color:Number, alpha:Number ):Void 
{ 
   //Dibujamos un cuadrado 
   clip.clear(); 
   clip.beginFill( color?color:0, alpha?alpha:50 ); 
   clip.moveTo( x, y ); 
   clip.lineTo( x_, y ); 
   clip.lineTo( x_, y_ ); 
   clip.lineTo( x, y_ );
   clip.endFill();    
} 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 23 Abr 2009 12:21 am
ok gracias por la idea

pero tengo un problema, con el hittest no puedo generar informacion con solo agruparlos, el problema es que agrupo objetos repetidos apartir de un clip que se duplica de un duplicateMOvie en varios, nesesito capturar el valor que les puse a cada uno de ellos con solo englobarlos... mira la idea del codigo fue asi:


Código :

if (mainMap.selection_mc.hitTest(Punto_Agrupar)){
         
               for (i in _level0.ContratosInteres_mc) {
      var EstePunto:String = String(eval("Cargador_Puntos."+PuntoSelecionado)._name);
      var PuntoVariable:String = String(i);
      if (PuntoVariable == EstePunto) {
         VariablesDelPunto = ContratosInteres_mc[i];
         var my_str:String = VariablesDelPunto;
         var my_array:Array = my_str.split(";");
         Iconos_Contrato = my_array[0];
         coomparado=my_array[1];
         Longitud_Punto = my_array[3];
         Latitud_Punto = my_array[4];
         
         
         ////cadena a mandar
         p10000.text = p10000.text+coomparado+",";
                                                                                                                            
         mainMap.selection_mc.clear();

         updateAfterEvent();

}
}
}

Por darome

32 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 Abr 2009 09:26 am
U_U En cierto modo, solo tu o los que tengan el archivo fla entenderian ese codigo, OJO no te estoy pidiendo que me envies el archivo fla o algo asi, el ejemplo que te coloque, esta bastante bien planteado, en la funcion evaluar, solo evalas todos los clips que estan dentro de los limites de la seleccion ahi esta el array con los limites, se llama "limites" todo lo que este dentro de esos limites, fue seleccionado, no tiene mayo gracia.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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