Comunidad de diseño web y desarrollo en internet online

Duda con parametro de función

Citar            
MensajeEscrito el 14 Ene 2012 03:51 am
Se me presento el siguiente problema, necesito que un parámetro de una función cambie,
hasta ahora tengo lo el siguiente script

Código :

package script{
   
    import flash.display.*
       import flash.events.*
    
    public class Main  extends MovieClip{
   
   var newObj:MovieClip;
   
   
   public function Main():void{
   

   var key:KeyFlag= new KeyFlag(newObj,stage)         
   
   stage.addEventListener(MouseEvent.MOUSE_DOWN,revar);

   }
      
   function revar(evento:MouseEvent):void{
   
      
   trace(evento.target.name)
   
      }
   
    }}


en la pantalla tengo barios blocks y necesito que el primer parámetro de KeyFlag sea el ultimo block al que de el foco en este caso haciéndole click y no se me ocurre de que manera, por favor si alguien me da una manto le estaré agradecido.

Saludos Maxxx.

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 14 Ene 2012 01:23 pm
Si quieres pasarle evento.target (que es el elemento al que se le hizo click) al constructor de KeyFlag, mueve esa línea adentro de la función revar ... si solo quieres crear un KeyFlag, borra el listener después de ejecutarlo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Ene 2012 02:17 pm
Gracias, el problema ahora es que necesito que solo aya un KeyFlag y que el parámetro de ese cambie si creo uno cada click no solo lo aplico en el ultimo sino en todos los que voy dando click

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 14 Ene 2012 03:36 pm
Asignale el click directamente a la clase entonces

stage.addEventListener(MouseEvent.MOUSE_DOWN, key.onClick);

Tiu clase tiene que tener un método público onClick que será llamado directamente desde tu listener

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Ene 2012 01:17 am
Gracias Jorge! dejo la clase KeyFlag por si se le es de utilidad para alguien.

La cual sirve para controlar cualquier MC en el stage con solo darle un click.

Código :

package script{
   
import flash.display.MovieClip
import flash.display.Sprite
import flash.events.Event
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.Stage;

dynamic  class KeyFlag extends MovieClip{
      
 var keyLeftPressed:Boolean;  
 var keyRightPressed:Boolean;  
 var keySPACEPressed:Boolean;
 var keyUpPressed:Boolean;
 var keyDownPressed:Boolean;
 var KeyPress:Boolean;
 var spaceBarPressed:Boolean; 
 


public  var $tar:Object;
 var $stageRef:Stage;
 

 
 
 public function  KeyFlag(stageRef:Stage):void
{



$stageRef=stageRef

addEventListener(Event.ENTER_FRAME,acciones,false,0,true)

stageRef.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed); 
stageRef.addEventListener(KeyboardEvent.KEY_UP  ,keyRelease);  
}

public function onClick(evento){
   
   $tar=evento.target
   

}

function acciones(evento:Event):void{
if (keyLeftPressed ){$tar.x--} ;
if (keyRightPressed){$tar.x++} ;
if (keyDownPressed ){$tar.y++} ;
if (keyUpPressed   ){$tar.y--} ;
   
}


   
      
  function keyPressed(event:KeyboardEvent):void
{           
       if (event.keyCode == Keyboard.LEFT)
      keyLeftPressed = true
     
       if (event.keyCode == Keyboard.RIGHT) 
      keyRightPressed = true
      
      if (event.keyCode == Keyboard.SPACE)
      keySPACEPressed = true
      
      if (event.keyCode == Keyboard.DOWN)       
      keyDownPressed = true
      
       if (event.keyCode == Keyboard.UP)       
      keyUpPressed = true
      
}  


 function keyRelease(event:KeyboardEvent):void
{      

     if (event.keyCode == Keyboard.LEFT)   {    keyLeftPressed = false;  }
      
     if (event.keyCode == Keyboard.RIGHT)   {   keyRightPressed = false; }
      
     if (event.keyCode == Keyboard.SPACE)  {   keySPACEPressed = false; }
      
     if (event.keyCode == Keyboard.DOWN)    {   keyDownPressed = false;    }  
    
     if (event.keyCode == Keyboard.UP)    {   keyUpPressed = false;      }
  
      
}
    
      
      
   }//End class   
/*********************************MAXISAN*******************************************************/   
}//END PACK
 



Saludo Maxxx

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox

 

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