Malerei Flash CS3: Echtzeit-Löschen-Werkzeug
Montag, 11. Februar 2008 Ausgehend von der Codes in Paint erstellen in Flash CS3 vorgesehen, und die Durchführung kleiner Änderungen, kann sie wesentlich zu verbessern, um das Werkzeug "löschen". Hinzufügen einer Form nicht sichtbar ist, können Sie es als einen "Plan" zu laufen die draw() in Füllmethode verwenden "löschen". Wie im Beispiel unten, nachdem Sie etwas zu zeichnen, halten Sie die Strg-Taste und die Wirkung von "Löschen" erscheint nun in Echtzeit.
Der Code lautet wie folgt - Quelle:
- / /
- / /
- / /
- event_spr ) ; addChild (event_spr);
- / /
- / /
- createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; Matrix. createGradientBox (area_width, area_height, 1, 0, 0);
- / /
- event_spr . graphics ) { mit (event_spr. Grafiken) (
- fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, Farben, Alphas, Finanzkennzahlen, Matrix, spreadMethod);
- 0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height);
- ; endFill ();
- )
- / / Paint-Ereignis
- ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; event_spr. addEventListener (MouseEvent. MOUSE_DOWN, _onMouseDown);
- ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; event_spr. addEventListener (MouseEvent. MOUSE_MOVE, _onMouseMove);
- ( MouseEvent . MOUSE_UP , _onMouseUp ) ; event_spr. addEventListener (MouseEvent. MOUSE_UP, _onMouseUp);
- ( MouseEvent . MOUSE_OUT , _onMouseUp ) ; event_spr. addEventListener (MouseEvent. MOUSE_OUT, _onMouseUp);
- / /
- BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (event_spr. Breite, event_spr. Höhe, true, 0);
- bmp ) ; addChild (bmp);
- / /
- / / Temporary Form
- draw_shape ) ; addChild (draw_shape);
- / /
- / / Form, nicht sichtbar ist, die für die "Annullierung"
- / /
- ) ; debug ( "_onMouseDown");
- . lineStyle ( 10 , 0xffffff , 1 ) ; draw_shape. Grafiken. lineStyle (10, 0xFFFFFF, 1);
- . lineStyle ( 20 , 0xffffff , 1 ) ; erase_shape. Grafiken. lineStyle (20, 0xFFFFFF, 1);
- . moveTo ( e . localX , e . localY ) ; draw_shape. Grafiken. moveTo (and. localX, und. localy);
- . moveTo ( e . localX , e . localY ) ; erase_shape. Grafiken. moveTo (and. localX, und. localy);
- md = true;
- )
- / /
- md = false;
- . draw ( draw_shape ) ; bmp. bitmapData. draw (draw_shape);
- . clear ( ) ; draw_shape. Grafiken. Clear ();
- . clear ( ) ; erase_shape. Grafiken. Clear ();
- )
- / /
- ) ; debug ( "_onMouseMove");
- md && ! e . ctrlKey ) { if (md & &! und. ctrlKey) (
- . lineTo ( e . localX , e . localY ) ; draw_shape. Grafiken. lineTo (and. localX, und. localy);
- ( md && e . ctrlKey ) { ) Else if (md & & und. CtrlKey) (
- . lineTo ( e . localX , e . localY ) ; erase_shape. Grafiken. lineTo (and. localX, und. localy);
- . draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "löschen");
- )
- )
- / /
- d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + ":" + d. getSeconds () + ":" + d. getMilliseconds () + ":" + v);
- )
Sie haben eine neue Form, erase_shape nicht sichtbar hinzugefügt (noch nicht gefallen ist jede addChild()
In dem Teil des Codes, der für Design nimmt wurde eingeführt, um die Strg-Taste gedrückt, wenn Kontrolle und ist genau der betreffenden Form erase_shape und die Bitmap kopiert:
- ....
- . lineTo ( e . localX , e . localY ) ; erase_shape. Grafiken. lineTo (and. localX, und. localy);
- . draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "löschen");













Ein Hebel mejora en la función y drenaje der hizo a mí clase.
@ Greg: good!