Malerei Flash CS3: Echtzeit-Löschen-Werkzeug

Montag, 11. Februar, 2008

Starten des Codes, die in Erstellen Sie eine Farbe in Flash CS3, Durchführung und kleine Änderungen, können wir deutlich verbessern das Tool auf "löschen". Hinzufügen einer Form nicht sichtbar ist, können Sie es als ein "Plan", um die draw() Fusion-Modus "Löschen". Wie im Beispiel gezeigt, mit etwas konstruiert, halten Sie die Strg-Taste und die Wirkung der "Annullierung" ist jetzt in Echtzeit.

Flash-Player Loading ...

Der Code ist wie folgt - Quelle:

Actionscript:
  1. . MouseEvent ; Import-Blitz. Veranstaltungen. MouseEvent;
  2. . BitmapData ; Import-Blitz. Anzeige. BitmapData;
  3. . Bitmap ; Import-Blitz. Anzeige. Bitmap;
  4. . GradientType ; Import-Blitz. Anzeige. GradientType;
  5. / /
  6. . Matrix ; Import-Blitz. 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. Stadium. stageWidth;
  14. = event_spr. stage . stageHeight - 32 ; var area_height: Number = event_spr. Stadium. stageHeight - 32;
  15. / /
  16. = GradientType. LINEAR ; var fillType: String = GradientType. LINEAR;
  17. = [ 0xFF0000, 0x00FF00, 0x0000ff ] ; var Farben: Array = [0xFF0000, 0x00FF00, 0x0000ff];
  18. = [ 1 , 1 , 1 ] ; var Alphas: Array = [1, 1, 1];
  19. = [ 0 , 128 , 255 ] ; var-Verhältnis: Array = [0, 128, 255];
  20. = SpreadMethod. PAD ; var spreadMethod: String = SpreadMethod. PAD;
  21. Matrix ( ) ; var Matrix: Matrix = new Matrix ();
  22. area_width, area_height, 1 , 0 , 0 ) ; Matrix. createGradientBox (area_width, area_height, 1, 0, 0);
  23. / /
  24. event_spr. graphics ) { mit (event_spr. Grafiken) (
  25. fillType,colors,alphas,ratios,matrix,spreadMethod ) ; beginGradientFill (fillType, Farben, Alphas, Kennzahlen, Matrix, spreadMethod);
  26. , 0 ,area_width, area_height ) ; drawRect (0, 0, area_width, area_height);
  27. ; endFill ();
  28. )
  29. / / Paint Veranstaltung
  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. Breite, event_spr. Höhe, true, 0);
  36. Bitmap ( bmpd ) ; var bmp: = new Bitmap Bitmap (bmpd);
  37. ; addChild (bmp);
  38. / /
  39. / / Temporäre Form
  40. Shape ( ) ; var draw_shape: Shape = new Shape ();
  41. ; addChild (draw_shape);
  42. / /
  43. / / Form, nicht sichtbar, die für die "Abschaffung"
  44. Shape ( ) ; var erase_shape: Shape = new Shape ();
  45. / /
  46. e :MouseEvent ) : void { _onMouseDown Funktion (e: MouseEvent): void (
  47. ) ; debug ( "_onMouseDown");
  48. ( 10 , 0xffffff, 1 ) ; draw_shape. Grafiken. LineStyle (10, 0xFFFFFF, 1);
  49. ( 20 , 0xffffff, 1 ) ; erase_shape. Grafiken. LineStyle (20, 0xFFFFFF, 1);
  50. ( e . localX , e . localY ) ; draw_shape. Grafiken. moveTo (e. localX, und. localY);
  51. ( e . localX , e . localY ) ; erase_shape. Grafiken. moveTo (e. localX, und. localY);
  52. md = true;
  53. )
  54. / /
  55. e :MouseEvent ) : void { _onMouseUp Funktion (e: MouseEvent): void (
  56. md = false;
  57. ( draw_shape ) ; bmp. BitmapData. draw (draw_shape);
  58. ( ) ; draw_shape. Grafiken. clear ();
  59. ( ) ; erase_shape. Grafiken. clear ();
  60. )
  61. / /
  62. e :MouseEvent ) : void { _onMouseMove Funktion (e: MouseEvent): void (
  63. ) ; debug ( "_onMouseMove");
  64. md && ! e . ctrlKey ) { if (MD & &! und. ctrlKey) (
  65. ( e . localX , e . localY ) ; draw_shape. Grafiken. LineTo (e. localX, und. localY);
  66. ( md && e . ctrlKey ) { ) Else if (e & & md. CtrlKey) (
  67. ( e . localX , e . localY ) ; erase_shape. Grafiken. LineTo (e. localX, und. localY);
  68. ( erase_shape, null , null , "erase" ) ; bmp. BitmapData. draw (erase_shape, null, null, "löschen");
  69. )
  70. )
  71. / /
  72. v: String ) : void { Debug-Funktion (v: String): void (
  73. = new Date ( ) ; var d: Datum = new Date ();
  74. d. getMinutes ( ) + ":" +d. getSeconds ( ) + ":" +d. getMilliseconds ( ) + ": " +v ) ; Trace († getMinutes () + ":" + d. getSeconds () + ":" + d. getMilliseconds () + ":" + v);
  75. )

Wir haben eine neue Form, erase_shape nicht sichtbar ist (es wurde nicht durchgeführt, alle addChild()

Actionscript:
  1. ...
  2. / / Form, nicht sichtbar, die für die "Abschaffung"
  3. Shape ( ) ; var erase_shape: Shape = new Shape ();

Das Stück Code, das versucht zu ziehen wurde für die Steuer-Taste und, wenn gedrückt, ist genau die Frage Shape erase_shape kopiert und auf Bitmap:

Actionscript:
  1. ....
  2. . lineTo ( e . localX , e . localY ) ; erase_shape. Grafiken. LineTo (e. localX, und. localY);
  3. ( erase_shape, null , null , "erase" ) ; bmp. BitmapData. draw (erase_shape, null, null, "löschen");

Verwandte Post

Erstellen Sie eine Farbe in Flash CS3

Sonntag, 10. Februar, 2008

Wie bereits in Flash Actionscript Wettbewerb: Löschen-Werkzeug ist nicht möglich, "löschen" ein bestimmtes Gebiet ein Sprite, oder Shape MovieClip, die gezogen wurden Linien oder Rechtecke mit den Zeiger Grafiken. Es ist in der Tat, die einzige Methode clear() die jedoch wirksam auf dem Gebiet der unser Thema. Die Lösung des Problems liegt in der Möglichkeit der Verwendung von Bitmap-Objekte und BitmapData. Wir werden sehen, wie wir unmittelbar zugreifen können und Bitmap-Daten manipulieren, um auf "löschen" die Züge mit einem echten Instrument "Abbrechen".

Präsentieren zwei verschiedene Methoden für die Erreichung der "Löschen". Die erste "Malerei" (klar) Daten direkt in BitmapData, mit der Methode fillRect() kann auch verwendet werden, setPixel() Die zweite Methode, die eine, die ich bevorzuge, nutzt die Methoden der Fusionen (blendmode).

Zunächst sehen wir, welche Art von Unternehmen ist minimal notwendig ist, um die einfache Painter in Flash. Der Umriss dargestellt gilt gleichermaßen für beide Vorschläge des "Löschen":

Schema-Bitmap

Ich habe drei Schichten: die erste, MovieClip oder Sprite, und arbeitet als Hintergrund-Event-Handler (mouseDown, MouseMove und MouseUp). Die zweite, Bitmap, ist unser Haupt-Schicht, die tatsächlich enthalten Grafiken konzipiert und wird auch die Funktion "Abbrechen". Die dritte und letzte Schicht, die Form, löst zwei Fragen: Erstens, mit dem Sie direkt verwenden Sie die Funktionen aus dem Grafik-Zeiger (wie lineStyle drawRect() etc. ...). Auch erhöht sich die Leistung während der Tracking-Chart, wie weiter unten im einzelnen dargelegt. Lesen Sie weiter ... "

Verwandte Post

Flash Actionscript Wettbewerb: Löschen-Werkzeug

Sonntag 3. Februar 2008

Ich Staat jetzt nicht alles gewonnen! Abgesehen von Stolz - wenn überhaupt -, dass er das Problem gelöst.

QUEST - ANTRAG

Wie ist ein Werkzeug zu löschen, löschen, sauber, ein "Teil" von Grafiken mit der ActionScript 3.0-API?

ActionScript 3.0 mit einigen visuellen Objekte, wie MovieClip Shape einer Shape setzen die Eigenschaft graphics einen Zeiger auf ein anderes Objekt, das "dient" allen runtime Grafik-Design. So können Sie zum Beispiel eine einfache Anwendung Design. Dieses Objekt graphics ziehen können etwas, zum Beispiel auf ein Objekt Shape schnell und einfach. Das Problem ist, dass einmal etwas konstruiert Sie können bis alles sauber, aber nicht ein einziges Teil.

Zeichnen Sie eine Linie ist einfach:

Actionscript:
  1. Shape ( ) ; var myShape: Shape = new Shape ();
  2. ; addChild (myShape);
  3. / /
  4. ( 2 ,0xff0000, 1 ) ; myShape. Grafiken. LineStyle (2, 0xff0000, 1);
  5. ( 0 , 0 ) ; myShape. Grafiken. moveTo (0, 0);
  6. ( 100 , 100 ) ; myShape. Grafiken. LineTo (100, 100);

Designed etwas, das Sie säubern alles, was durch die einfache Methode Aufruf von clear()

Actionscript:
  1. ( ) ; myShape. Grafiken. clear ();

Aber wenn ich auf "löschen" nur ein Ausgangspunkt? Oder Koordinaten 50,50 bis 100,100?

Suchen Sie im Internet fand ich zahlreiche Beispiele für Anwendungen des Designs "und in der Tat, keine Unterstützung oder Angebote für die" Löschen ".

Jede Lösung?

Verwandte Post

10 Gründe, um zu Adobe Flash CS3

Montag, 26. November, 2007

2007-11-21_170314 Für einige Entwickler genug, um zu wissen, dass es eine neue Version ihrer Paket von Entwicklung vorgezogen, Rennen zu kaufen das Upgrade. Andere, nicht falsch, eine mehr Ruhe und "Nachfrage" zu wissen, die tatsächliche Verbesserung der neuen Version vor einer Änderung ihrer Gewohnheiten. Im Falle von Adobe Flash CS3 gibt es viel zu warten, angesichts der vielen Änderungen, die gelitten haben aus dem Paket, wenn Macromedia wurde von Adobe.
Hier, dann, 10 einfache, aber wichtige Gründe, in meine persönliche Meinung, genug davon zu überzeugen, ein Upgrade auf Adobe Flash CS3. Selbstverständlich werde ich, nur die Funktionen, die mir persönlich, dies wird nicht als erschöpfende Liste von all den vielen Neuerungen, die die CS3-Suite, nur ein Flug Beweidung zu antizipieren einige Features der Version CS3.

1. Installation

Die Installation ist schnell und angenehm, im Vergleich zu früheren Versionen. Es beinhaltet unter anderem, mit all den Adobe-Produkte (Dreamweaver CS3, Photoshop CS3 verlängert, etc ...), die die Tätigkeit der Installation / Entfernung und Update eine echte Freude.

2. Abwärtskompatibilität

Eine Frage oft unterschätzt, aber immer berücksichtigt in der Geschichte von Flash: die Fähigkeit zur Verwaltung von früheren Versionen des Produkts. In Flash CS3 gibt es alle Instrumente ist die Migration zu manipulieren, dass die früheren Versionen unserer Filme. Wir finden diese Möglichkeit ist im Debug-(Debug einem separaten ActionScript 2.0 und ActionScript 3.0) wird kompiliert des Films. Schreiben Sie jetzt in Flash ActionScript 3.0 kontraproduktiv sein könnte in bestimmten Kontexten. Wenn Ihre Ziel-Site hat einen bedeutenden Verkehr könnte passieren, dass viele Nutzer noch nicht installiert haben die neueste Version von Flash Player für den Browser und dann würde nicht den Film. Allerdings, wie ich bereits sagte, Flash CS3 ermöglicht es Ihnen, entwickeln Flash mantendedo Anwendungen Abwärtskompatibilität und so Ich sehe das nicht in einem großen ostocalo nell'upgrade Produkt.

3. Grafische-und IDE-Schnittstelle

Panel-Symbol aufNeue Panel Flash CS3 Die IDE Flash CS3 (wie Dreamweaver CS3) umgestaltet worden ist, um. Die Platten (siehe Abbildung auf der linken Seite), die oft unbequem in früheren Versionen, wurden komplett neu gestaltet und nun ihre Verwendung ist wesentlich weniger invasiv. Platten-Modus-Symbol Weiterhin kann die Möglichkeit der Verringerung der zu-Symbol-Panels (siehe Abbildung auf der rechten Seite) ist ein wahres fest, dass die Schnittstelle macht es attraktiv und funktionell. Wenn ein Panel-Symbol ist in nimmt viel weniger Platz und mit einem einfachen Klick öffnet sich die erste Haupt-Panel immer sichtbar.
Alle IDE, kurz gesagt, wurde überarbeitet, einschließlich der zentralen Bereich mit dem Fenster zum Editieren und Grafik-Code. Es I Bericht alle Änderungen sonst verderben Sie die Überraschung ...

Neue IDE Flash CS3

Lesen Sie weiter ... "

Verwandte Post