Code or Die Trying ...
Código :
var escucha:Object = new Object();
var ar:Array = new Array();
var aT:Number = 0;
escucha.onMouseDown = function () {
ar.push(new Array(_root._xmouse,_root._ymouse));
var l:Number = ar.length;
if(l>=3){
if(_root.area.hitTest(_root._xmouse,_root._ymouse,true)){
aT -= areaTriangulo(ar[l-1][0],ar[l-1][1],ar[l-2][0],ar[l-2][1],ar[l-3][0],ar[l-3][1]);
} else {
aT += areaTriangulo(ar[l-1][0],ar[l-1][1],ar[l-2][0],ar[l-2][1],ar[l-3][0],ar[l-3][1]);
};
_root.createEmptyMovieClip ("area", 1);
_root.area.beginFill (0x0000FF, 50);
_root.area.lineStyle (1, 0xFF00FF, 100);
_root.area.moveTo(ar[0][0],ar[0][1]);
for(var i:Number = 1;i<l;i++) {
_root.area.lineTo (ar[i][0],ar[i][1]);
};
_root.area.lineTo(ar[0][0],ar[0][1]);
endFill();
};
trace("El area seleccionada es de : "+aT+" pixeles cuadrados");
};
Mouse.addListener(escucha);
function distancia(xa,ya,xb,yb) {
return Math.sqrt(Math.pow(xa-xb,2)+Math.pow(ya-yb,2));
};
function areaTriangulo(xa,ya,xb,yb,xc,yc) {
var a:Number = distancia(xa,ya,xb,yb);
var b:Number = distancia(xb,yb,xc,yc);
var c:Number = distancia(xc,yc,xa,ya)
var p:Number = (a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
};
Copien y Peguen en Flash, despues vayan pinchando, el script vabien con las medidas correctas hasta que se crucen dos lineas..., pero para poligonos irregulares "sin agujeros"[viva esa topologia!!] funciona bien