Slikarstvo Flash CS3: realnom vremenu izbrisati alat

Ponedjeljak, 11 Veljača 2008

Građevinska šifre dali u stvaranju Boja Flash CS3, i prikazuju male promjene, koje mogu značajno poboljšati instrument na "izbriši". Dodavanjem obliku nije vidljiva, možete ga koristiti kao "plan" koji će se prikazivati na draw () mod od spajanja "izbriši". Kao što je prikazano u primjeru u nastavku, nakon što su dizajnirana nešto, držite tipku CTRL i efekt "otkaza" je sada u realnom vremenu.

Loading Flash Player ...

The code je kao što slijedi - izvor:

ActionScript:
  1. . MouseEvent ; uvoz flash. događanja. MouseEvent;
  2. . BitmapData ; uvoz flash. prikaz. BitmapData;
  3. . Bitmap ; uvoz flash. prikaz. Bitmap;
  4. . GradientType ; uvoz flash. prikaz. GradientType;
  5. / /
  6. . Matrix ; uvoz flash. geom. Matrix;
  7. / /
  8. = false ; var md: boolean = false;
  9. / /
  10. Sprite ( ) ; var event_spr: Sprite = new Sprite ();
  11. ; addChild (event_spr);
  12. / /
  13. = event_spr. stage . stageWidth ; var area_width: Number = event_spr. stage. stageWidth;
  14. = event_spr. stage . stageHeight - 32 ; var area_height: Number = event_spr. stage. stageHeight - 32;
  15. / /
  16. = GradientType. LINEAR ; var fillType: String = GradientType. LINEARNI;
  17. = [ 0xFF0000, 0x00FF00, 0x0000ff ] ; var boje: Array = [0xFF0000, 0x00FF00, 0x0000ff];
  18. = [ 1 , 1 , 1 ] ; var Alphama: Array = [1, 1, 1];
  19. = [ 0 , 128 , 255 ] ; var Pokazivači: Array = [0, 128, 255];
  20. = SpreadMethod. PAD ; var spreadMethod: String = SpreadMethod. PAD;
  21. Matrix ( ) ; var matrica: matrix = new Matrica ();
  22. area_width, area_height, 1 , 0 , 0 ) ; matrica. createGradientBox (area_width, area_height, 1, 0, 0);
  23. / /
  24. event_spr. graphics ) { s (event_spr. grafika) (
  25. fillType,colors,alphas,ratios,matrix,spreadMethod ) ; beginGradientFill (fillType, boje, Alphama, Pokazivači, matrica, spreadMethod);
  26. , 0 ,area_width, area_height ) ; drawRect (0, 0, area_width, area_height);
  27. ; endFill ();
  28. )
  29. / / Boja događaj
  30. MouseEvent. MOUSE_DOWN , _onMouseDown ) ; event_spr. addEventListener (MouseEvent. MOUSE_DOWN, _onMouseDown);
  31. MouseEvent. MOUSE_MOVE , _onMouseMove ) ; event_spr. addEventListener (MouseEvent. MOUSE_MOVE, _onMouseMove);
  32. MouseEvent. MOUSE_UP , _onMouseUp ) ; event_spr. addEventListener (MouseEvent. MOUSE_UP, _onMouseUp);
  33. MouseEvent. MOUSE_OUT , _onMouseUp ) ; event_spr. addEventListener (MouseEvent. MOUSE_OUT, _onMouseUp);
  34. / /
  35. BitmapData ( event_spr. width ,event_spr. height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (event_spr. širina, event_spr. visine, true, 0);
  36. Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd);
  37. ; addChild (BMP);
  38. / /
  39. / / Temporary Oblik
  40. Shape ( ) ; var draw_shape: Oblik = new Shape ();
  41. ; addChild (draw_shape);
  42. / /
  43. / / Shape, nije vidljiva, koristi se za "ukidanje"
  44. Shape ( ) ; var erase_shape: Oblik = new Shape ();
  45. / /
  46. e :MouseEvent ) : void { _onMouseDown function (e: MouseEvent): void (
  47. ) ; debug ( "_onMouseDown");
  48. ( 10 , 0xffffff, 1 ) ; draw_shape. grafika. lineStyle (10, 0xffffff, 1);
  49. ( 20 , 0xffffff, 1 ) ; erase_shape. grafika. lineStyle (20, 0xffffff, 1);
  50. ( e . localX , e . localY ) ; draw_shape. grafika. moveTo (and. localX, i. localY);
  51. ( e . localX , e . localY ) ; erase_shape. grafika. moveTo (and. localX, i. localY);
  52. MD = true;
  53. )
  54. / /
  55. e :MouseEvent ) : void { _onMouseUp function (e: MouseEvent): void (
  56. MD = false;
  57. ( draw_shape ) ; bmp. bitmapData. draw (draw_shape);
  58. ( ) ; draw_shape. grafika. vedro ();
  59. ( ) ; erase_shape. grafika. vedro ();
  60. )
  61. / /
  62. e :MouseEvent ) : void { _onMouseMove function (e: MouseEvent): void (
  63. ) ; debug ( "_onMouseMove");
  64. md && ! e . ctrlKey ) { ako (MD & &!. ctrlKey) (
  65. ( e . localX , e . localY ) ; draw_shape. grafika. lineTo (and. localX, i. localY);
  66. ( md && e . ctrlKey ) { ) Else if (MD & & i. CtrlKey) (
  67. ( e . localX , e . localY ) ; erase_shape. grafika. lineTo (and. localX, i. localY);
  68. ( erase_shape, null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "izbrisati");
  69. )
  70. )
  71. / /
  72. v: String ) : void { ispravljanje funkcija (v: String): void (
  73. = new Date ( ) ; var d: Date = new Date ();
  74. d. getMinutes ( ) + ":" +d. getSeconds ( ) + ":" +d. getMilliseconds ( ) + ": " +v ) ; trag (d. getMinutes () + ":" + d. getSeconds () + ":" + d. getMilliseconds () + ":" + v);
  75. )

Dodana je jedan novi oblik, nije vidljiva erase_shape (nije obavljeno, bilo koje addChild ()):

ActionScript:
  1. ...
  2. / / Shape, nije vidljiva, koristi se za "ukidanje"
  3. Shape ( ) ; var erase_shape: Oblik = new Shape ();

Na komad od kod da pokuša privući uvedeno je za kontrolu i kontrolu ključem, kada je postao, u pitanju je upravo u obliku erase_shape i kopirati na Bitmap:

ActionScript:
  1. ....
  2. . lineTo ( e . localX , e . localY ) ; erase_shape. grafika. lineTo (and. localX, i. localY);
  3. ( erase_shape, null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "izbrisati");

Ostavite komentar

Možete koristiti sljedeću oznaku XHTML: <href title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <, datetime = ""> <em> <i> <q cite=""> <strike> <strong>