Comunidad de diseño web y desarrollo en internet online

definir area clicks raton

Citar            
MensajeEscrito el 23 Sep 2009 02:48 pm
hola...muchas gracias eliseo!!!
este es mi ejemplo y me gustaria k solo hiciera clicks en zona azul...me gustaria definir la zona donde actua
http://gemaesparza.com/toy/gemitaa222.swf
este es mi codigoo ::




var array:Array = new Array("gema1.swf", "gema2.swf", "gema3.swf");
trace(array)
for (var i:int=0;i<array.length;i++){
var tmp:String=array[i];
var j:int=Math.floor(array.length*Math.random())
array[i]=array[j]
array[j]=tmp
}
trace(array)
var index:int=0;

stage.addEventListener(MouseEvent.CLICK,onMouseClick);
function onMouseClick(e:MouseEvent):void{
if ((mouseX<=500) && (mouseY<=400))
var ldr:Loader = new Loader()
var urlReq:URLRequest = new URLRequest(array[index]);
ldr.load(urlReq);
ldr.x=mouseX;
ldr.y=mouseY;
addChild(ldr);
index++
index=index%array.length;
}

Por laish

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Sep 2009 03:53 pm
Lo mejor, cuando queremos definir un área es usar un objeto Rectangle

Así, si tenemos un MC "zona_azul" podemos escribir

Código ActionScript :

var zona:Rectangle=zona_azul.getRect();

Si no tenemos ningún MC escribiremos

Código ActionScript :

var zona:Rectangle=new Rectangle(10,20,340,500)

donde los argumentos son la x y la y de la esquina superior izquierda el ancho y el alto.

Una vez que tenemos definido nuestro Rectangle, podemos usar el método contains
Así

Código ActionScript :

function onMouseClick(e:MouseEvent):void{
if (zona.contains(e.stageX,e.stageY)){
              ...haz algo....
}

He usado e.stageX y e.stageY que nos devuelven las coordenadas pulsadas.

Claro que, cuando nos acerquemos al borde rechero o al borde inferior, nuestras figuras se "saldrán". El único modo de evitar eso es saber el ancho y el alto de la figura y comparar dos puntos, el (e.stageX,e.stageY) y el (e.stageX+WIDTH,e.stageY+HEIGHT)

El problema es que no sabemos el ancho y el alto hasta que no cargamos la imagen. Para ello debemos añadir un listener al loader y hacer la comparación en el evento Event.INIT.

Por Eliseo2

710 de clabLevel



 

firefox

 

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