Bueno, te he limpiado el codigo todo lo que he podido, el resultado es algo 
asi
http://extranet.netthink.es/festivales/esp/adidas/dibuja/roba_300x250_layer
En lugar de dibujar una linea con la api de dibujo de Flash, tengo un clip 
en la biblioteca con una linea horizontal alineada a la izquierda (como la 
aguja de las 3 en un reloj).
Tambien hay un botonazo transparente que ocupa todo el escenario llamado 
zona, que activa y desactiva el pintado.
En en (0,0) del escenario hay un clip vacio que utilizo como contenedor de 
toooodos los tramos de linea.
Se que es un poco lioso, pero el resultado es muy bonito y fluido.
Un saludo.




import mx.transitions.*;
import mx.transitions.easing.*;
import mx.utils.Delegate;
//
var umbral:Number = 5;
var limN2:Number = 150;
var contenedor:MovieClip = vacio.createEmptyMovieClip("cont", 1);
var ptoAnterior:Object = {x:_xmouse, y:_ymouse};
var ptoActual:Object = {x:_xmouse, y:_ymouse};
var n1:Number = 0;
var n2:Number = 0;
var primeraVez:Boolean = true;
var numR:Number = 40;
var pulsado:Boolean = false;
this.onMouseMove = miOnMouseMove;
function dibujarLinea() {
 var a:Number = ang(ptoAnterior, ptoActual);
 var lineaTemp:MovieClip = contenedor.attachMovie("linea", "l_"+n2, n2);
 lineaTemp._x = ptoAnterior.x;
 lineaTemp._y = ptoAnterior.y;
 lineaTemp.linea._width = dist(ptoAnterior, {x:_xmouse, y:_ymouse});
 lineaTemp._rotation = a;
 numR *= 0.7;
 n2++;
 if (n2>limN2) {
  n2 = 0;
 }
 ptoAnterior = {x:_xmouse, y:_ymouse};
}
function miOnMouseMove() {
 ptoActual = {x:_xmouse, y:_ymouse};
 if (pulsado == true) {
  if (dist(ptoAnterior, ptoActual)>umbral) {
   dibujarLinea();
  }
 }
}
function iniTrazo() {
 if (primeraVez) {
  primeraVez = false;
  ptoAnterior = {x:_root._xmouse, y:_root._ymouse};
 }
 estadoLinea(1);
 pulsado = true;
 ptoAnterior = {x:_xmouse, y:_ymouse};
 ptoPulsado = {x:_xmouse, y:_ymouse};
}
function finTrazo() {
 if (pulsado == true) {
  pulsado = false;
  estadoLinea(2);
 }
}
function dist(pto1:Object, pto2:Object):Number {
 var dX:Number = pto2.x-pto1.x;
 var dY:Number = pto2.y-pto1.y;
 var d:Number = Math.sqrt(dX*dX+dY*dY);
 return d;
}
function ang(pto1:Object, pto2:Object):Number {
 var dX:Number = pto2.x-pto1.x;
 var dY:Number = pto2.y-pto1.y;
 var a:Number = Math.atan2(dY, dX);
 a = a*180/Math.PI;
 if (a<0) {
  a += 360;
 }
 return a;
}
//
zona.onPress = iniTrazo;
zona.onRelease = zona.onReleaseOutside=finTrazo;




-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a