Esta muy bien me ha gustado en todos los sentidos, y gracias por el codigo. Saludos agradecidos
El día 18/10/07, Ivan <[EMAIL PROTECTED]> escribió: > > 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 > ----------------------------------------------------- > ----------------------------------------------------- ASNativos www.5dms.com subscripciones/desubscripciones http://asnativos.5dms.com -----------------------------------------------------