<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
width="600"
height="600"
creationComplete="addEventListener(MouseEvent.MOUSE_MOVE, mouseIsMoving);"
>
<mx:Script>
<![CDATA[
import mx.managers.CursorManager;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.core.UIComponent;
private var tabSavePos:Array = new Array();
private function mouseIsMoving(event:MouseEvent) : void
{
this.infosMouse.text = this.uic.mouseX + ' - ' + this.uic.mouseY;
var found:Boolean = false;
var i:int = 0;
var nbPassage:int = 0;
while(i<tabSavePos.length && !found)
{
var savePos:Object = new Object();
savePos = tabSavePos[i];
var posInfX:int = savePos['x']-savePos['d'];
var posSupX:int = savePos['x']+savePos['d'];
var posInfY:int = savePos['y']-savePos['d'];
var posSupY:int = savePos['y']+savePos['d'];
var betweenX:Boolean = (this.uic.mouseX>posInfX && this.uic.mouseX<posSupX) ? true : false;
var betweenY:Boolean = (this.uic.mouseY>posInfY && this.uic.mouseY<posSupY) ? true : false;
if(betweenX && betweenY)
{
this.uic.useHandCursor = true;
this.buttonMode = true;
found = true;
}
else
{
this.uic.useHandCursor = false;
i++;
}
nbPassage++;
}
this.infosMouseSupp.text = 'identifier: ' + nbPassage;
}
public function initDrawing(nbPoint:int) : void
{
this.backgroundCanvas.removeAllChildren();
this.uic = new UIComponent();
this.backgroundCanvas.addChildAt(this.uic, 0);
tabSavePos = new Array();
for(var i:int=0; i<nbPoint; i++)
{
var xCoord:Number = Math.random()*450;
var yCoord:Number = Math.random()*350;
var diam:Number = 4;
drawCircle(xCoord, yCoord, diam);
var save:Object = new Object();
save['x'] = xCoord;
save['y'] = yCoord;
save['d'] = diam;
tabSavePos.push(save);
}
}
public function addDrawing(nbPoint:int) : void
{
for(var i:int=0; i<nbPoint; i++)
{
var xCoord:Number = Math.random()*450;
var yCoord:Number = Math.random()*350;
var diam:Number = 4;
drawCircle(xCoord, yCoord, diam);
var save:Object = new Object();
save['x'] = xCoord;
save['y'] = yCoord;
save['d'] = diam;
tabSavePos.push(save);
}
}
private function drawCircle(xCoord:Number, yCoord:Number, diam:Number) : void
{
this.uic.graphics.beginFill(Math.random() * 0xffffff);
this.uic.graphics.drawCircle(xCoord, yCoord, diam);
this.uic.graphics.endFill();
}
]]>
</mx:Script>
<mx:HBox
width="100%"
height="20%"
>
<mx:TextInput
id="nbPoints"
text="1000"
/>
<mx:Button
label="Draw circles"
click="initDrawing(parseInt(nbPoints.text));"
/>
<mx:Button
label="Add circles"
click="addDrawing(parseInt(nbPoints.text));"
/>
<mx:Label
id="infosMouse"
/>
<mx:Label
id="infosMouseSupp"
/>
</mx:HBox>
<mx:HBox
width="100%"
height="80%"
>
<mx:Canvas
id="backgroundCanvas"
borderColor="red"
borderStyle="solid"
width="100%"
height="100%"
>
<mx:UIComponent
id="uic"
height="100%"
width="100%"
/>
</mx:Canvas>
</mx:HBox>
</mx:Application>