Paint-o-matic

Sabato 9 Febbraio, 2008

Per completezza, in relazione a Painting Flash CS3: effetti con le matrici Matrix voglio sottolineare che le Matrix non sono necessarie per il comportamento indicato nel precedente post. Infatti vediamo nell'esempio qui sotto:

Loading Flash Player...

Il codice, leggermente diverso da quello precedente, è il seguente:

Actionscript:
  1. /*
  2. ** Actionscript 2.0 code
  3. */
  4. import flash.events.MouseEvent;
  5. import flash.geom.Matrix;
  6. // flag per il detect del mousedown
  7. var md:Boolean = false;
  8. // creo una lavagna front
  9. var lvg1:Sprite = new Sprite();
  10. lvg1.graphics.lineStyle(0,0xffffff);
  11. lvg1.graphics.beginFill(0x666666);
  12. lvg1.graphics.drawRect(0,0,199,199);
  13. lvg1.graphics.endFill();
  14. addChild(lvg1);
  15. lvg1.x = lvg1.y = 30;
  16. // creo la lavagna inclinata
  17. var lvg2:Sprite = new Sprite();
  18. lvg2.graphics.lineStyle(0,0xffffff);
  19. lvg2.graphics.beginFill(0x666666);
  20. lvg2.graphics.drawRect(0,0,199,199);
  21. lvg2.graphics.endFill();
  22. lvg2.x = 400;
  23. lvg2.y = lvg1.y;
  24. lvg2.rotation = 45;
  25. lvg2.scaleX = lvg2.scaleY = .6;
  26. addChild(lvg2);
  27. //
  28. // paint event
  29. lvg1.addEventListener (MouseEvent.MOUSE_DOWN, _onMouseDown);
  30. lvg1.addEventListener (MouseEvent.MOUSE_MOVE, _onMouseMove);
  31. lvg1.addEventListener (MouseEvent.MOUSE_UP, _onMouseUp);
  32. //
  33. function _onMouseDown (e:MouseEvent):void {
  34.     trace("_onMouseDown");
  35.     var c:uint = 0xffffff;
  36.     e.target.graphics.lineStyle (10,c,1);
  37.     lvg2.graphics.lineStyle (10,c,1);
  38.     e.target.graphics.moveTo (e.localX,e.localY);
  39.     lvg2.graphics.moveTo (e.localX,e.localY);
  40.     md = true;
  41. }
  42. //
  43. function _onMouseUp (e:MouseEvent):void { md = false; }
  44. //
  45. function _onMouseMove (e:MouseEvent):void {
  46.     trace("_onMouseMove");
  47.     if (md)  {
  48.         e.target.graphics.lineTo (e.localX,e.localY);
  49.         lvg2.graphics.lineTo (e.localX,e.localY);
  50.     }
  51. }

In questo caso le righe dalla 22 alla 25 dimostrano che anche con semplici rotazione e spostamenti l'effetto si ripete.

Post correlati

Lascia un commento

Puoi utilizzare i seguenti TAG XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>