Artikel Tagged 'BitmapData'

Wie bewirbt man die Technik des Chroma-Key-in Adobe Flash

Die Technik des Chroma-Key , also die Substitution von einer bestimmten Farbe durch eine andere (oder einer anderen Quelle), hat wieder einmal in den letzten zehn Jahren mit erheblichen Arroganz, dank der zunehmend verbreitete Technologie in der Kino-und in der Behandlung von digitalen Bildern explodierte.

Mehr ...

Flash CS3: Erstellen Sie eine Reflexwirkung auf jeden MovieClip

Unter Ausnutzung einer Besonderheit des Actionscript 3.0 (siehe ActionScript 3.0 sind alle mit dem Operator new ) habe ich eine Klasse ReflexMe in der Lage, einen Effekt "Reflexion" eines beliebigen Movieclip in dieser Bibliothek zu generieren.

Flash Player geladen ...

Die Quelle ist Teil des Pakets undolibrary - GoogleCode dafür - aber wenn Sie möchten können Sie die einzelnen Datei herunterladen ReflexMe.as .

Mehr ...

Auswirkungen auf die Bitmap mit perlinNoise ()

Die Klasse BitmapData können Sie in einfacher Weise Effekte sehr nützlich für verschiedene Zwecke anwenden. Wir sahen, wie um einen Effekt "Nebel-TV" mit ein paar Zeilen Code (erstellen Flash CS3: Erstellen Sie Nebeleffekt TV in 1 Sekunde ). Jetzt werden wir mit einem anderen Effekt "spektakulär", die, wie wir später sehen werden, ermöglicht die Erstellung von interessanten visuellen Effekten, wie im Beispiel unten gezeigt befassen: die Parameter verändert werden, um die unterschiedlichen Effekte zu beobachten, Klicken mit der Maus auf das Bild erzeugt dies kann bewegt werden.

Flash Player geladen ...

Bei dieser Gelegenheit habe ich auch noch ein neues einfaches Bauteil (Check) in Undolibrary ! Dann aktualisieren Sie Ihre SVN-Repository. Die Quelle ist hier erhältlich: MapEffect.zip

Mehr ...

Wie man Bilder in Flash CS3 sparen

Mit der Verwendung von Adobe Flash CS3 Bitmap wird so verbessert, dass wird sofort wollte einen kleinen Lack zu schaffen. . Wir haben bereits gesehen, wie eine kleine Paint-machen (siehe Paint in Flash CS3 Erstellen Sie einen Maler: einfache Anwendung zum Zeichnen in Flash CS3 Pro ) kann eine echte "Radiergummi" unterstützen - Löschfunktion dank einer besonderen Verwendung Layer- Shape und Bitmap . Nehmen wir an, dass Flash (im Gegensatz zu Flex) Kodierung nicht möglich ist (wie JPG oder PNG) es speichert automatisch Bitmaps. Sie können aber drum herum kommen mit einem Server-Side-Scripting und die Fähigkeit, Daten in Flash-POST zu senden.

Mehr ...

Flash CS3 zu Nebeleffekt TV in 1 Sekunde erstellen

Flash CS3, ist erstaunlich. Hier ist, wie die klassische Nebel von Fernsehgeräten in einem zweiten mit 10 Zeilen Code erstellen.

Flash Player geladen ...

Mehr ...

Malerei Flash CS3: Echtzeit-Lösch-Funktion

Beginnend mit den Codes in sofern Erstellen Sie eine Farbe in Flash CS3 und Durchführung von kleineren Modifikationen, erheblich verbessern kann das Instrument der "Löschen". Hinzufügen einer Form nicht angezeigt wird, können Sie es als ein "Plan", um die Ausführung verwenden draw() in der Füllmethode "Löschen". Wie im Beispiel unten gezeigt, nach dem Ziehen etwas, halten Sie die Strg-Taste und die Wirkung von "Delete" erscheint jetzt in Echtzeit.

Flash Player geladen ...

Der Code sieht wie folgt aus - Quelle :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
. MouseEvent ; import flash.events. MouseEvent ;
. BitmapData ; import flash.display. BitmapData ;
. Bitmap ; import flash.display. Bitmap ;
. GradientType ; import flash.display. GradientType ;
/ /
. Matrix ; . import flash.geom Matrix ;
/ /
Boolean = false ; md var: Boolean = false;
/ /
Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite ();
event_spr ) ; addChild (event_spr);
/ /
Number = event_spr . stage . stageWidth ; var area_width: Anzahl .. = event_spr Bühne stageWidth;
Number = event_spr . stage . stageHeight - 32 ; var area_height: Anzahl .. = event_spr Bühne stageHeight - 32;
/ /
String = GradientType . LINEAR ; fillType var: String = GradientType linear;.
: Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; var Farben: Array = [0xFF0000, 0x00FF00 0x0000FF];
: Array = [ 1 , 1 , 1 ] ; var alphas: Array = [1, 1, 1];
: Array = [ 0 , 128 , 255 ] ; var ratios: Array = [0, 128, 255];
String = SpreadMethod . PAD ; spreadMethod var: String = SpreadMethod PAD;.
: Matrix = new Matrix ( ) ; var matrix: Matrix = new Matrix ();
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, colors, alphas Verhältnisse, 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, Höhe event_spr, true, 0.);
Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd);
bmp ) ; addChild (bmp);
/ /
/ / Temporäre Form
Shape = new Shape ( ) ; var draw_shape: Form = new Form ();
draw_shape ) ; addChild (draw_shape);
/ /
/ / Form, nicht gezeigt, verwendet für die "Stornierung"
Shape = new Shape ( ) ; var erase_shape: Form = new Form ();

/ /
e : MouseEvent ) : void { _onMouseDown Funktion (e: MouseEvent ): void {
) ; 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;
}
/ /
e : MouseEvent ) : void { _onMouseUp Funktion (e: MouseEvent ): void {
md = false;
. draw ( draw_shape ) ; .. bmp bitmapData draw (draw_shape);
. clear ( ) ; draw_shape Grafiken zu löschen ()..;
. clear ( ) ; erase_shape Grafiken zu löschen ()..;
}
/ /
e : MouseEvent ) : void { _onMouseMove Funktion (e: MouseEvent ): void {
) ; 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 && e. CtrlKey) {
. lineTo ( e . localX , e . localY ) ; .. erase_shape Grafiken lineTo (and. localX und localY.);
. draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData ziehen (erase_shape, null, null, "löschen")..;
}
}
/ /
v : String ) : void { Debug-Funktion (v: String ): void {
: Date = new Date ( ) ; var d: Date = new Date ();
d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (gest. getMinutes () + "" + d getSeconds () + "." + d getMilliseconds () + "" + v.);
}

): Wir haben eine neue Form hinzugefügt, erase_shape nicht sichtbar ist (es wurde keine gemacht addChild() ):

1
2
3
...
/ / Form, nicht gezeigt, verwendet für die "Stornierung"
Shape = new Shape ( ) ; var erase_shape: Form = new Form ();

In dem Code, der Pflege der Zeichnung nimmt für die Steuer-Taste eingeführt, und, wenn diese Taste gedrückt, betrifft genau die Form erase_shape und kopiert die Bitmap:

1
2
3
....
. lineTo ( e . localX , e . localY ) ; .. erase_shape Grafiken lineTo (and. localX und localY.);
. draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData ziehen (erase_shape, null, null, "löschen")..;

Mehr ...

Erstellen Sie eine Farbe in Flash CS3

Wie bereits im Abschnitt Flash Actionscript Contest: Lösch-Tool können Sie nicht "löschen" einen bestimmten Bereich eines Sprite, MovieClip-oder Shape-Linien, auf denen durch die Zeiger Grafiken oder Rechtecke gezeichnet wurden. Existiert in der Tat, die einzige Methode clear() , dass hat aber Auswirkungen auf den gesamten Bereich der unser Objekt. Die Lösung des Problems liegt in der Möglichkeit der Verwendung der Bitmap-und BitmapData-Objekte. Wie wir sehen werden wir direkt zugreifen und sie manipulieren Bitmaps, um "Löschen" Schläge mit einem echten Instrument "Eraser".

Präsentieren zwei verschiedene Methoden, um das "Tor" zu erzielen. per esempio. Die ersten "Draw" (Löschen) Daten direkt in das BitmapData, mit der Methode fillRect() - können Sie auch setPixel() zum Beispiel. Die zweite Methode, die ich bevorzuge, verwendet die Methoden von Fusionen (blendMode).

Zunächst einmal wollen wir sehen, was für eine Organisation benötigt wird, um eine minimale einfache Maler in Flash zu erreichen. Das nachstehende Diagramm gilt für beide Vorschläge, die "Tor":

Bitmap-Muster

Ich habe drei Schichten: die erste, MovieClip oder Sprite, und arbeitet als Hintergrund Event-Handler (MouseDown, MouseMove und MouseUp). Die zweite, Bitmap, ist unser oberstes Schichten, eine, die tatsächlich in Anspruch genommen werden Grafiken angewendet werden und auf denen das "Tor". , ecc…). Der dritte und letzte Schicht, die Form, behandelt zwei Fragestellungen: die erste ist, dass es direkt verwenden Sie die Funktionen durch die Grafik-Cursor (wie vorgesehen erlaubt lineStyle , drawRect() , etc ...). Es steigert auch die Leistung während des Tracking-Chart, wie unten im Detail erläutert.

Mehr ...


Stop SOPA