SelectAlphaChannel(id[, type, frame])
id
angegebenen
Grafikobjekts als aktuelles Ausgabeziel. Dies bedeutet, dass
alle Grafikdaten in diesen Alphakanal gezeichnet werden. Alphakanäle
sind in Hollywood keine eigenständige Objekte; sie gehören immer
zu einem Bildobjekt, einem Pinsel oder einer Animation.
In der Standardeinstellung arbeitet SelectAlphaChannel()
immer
mit den Alphakanälen von Pinseln. Ab Hollywood 4.5 können Sie
jedoch auch in die Alphakanäle von Animationen und BGPics zeichnen.
Sie müssen dann beim optionalen Argument type
#ANIM
oder #BGPIC
angeben. Wenn Sie #ANIM
verwenden, müssen Sie auch das Einzelbild
angeben. Siehe SelectAnim() für weitere
Informationen. Wenn Sie #BGPIC
in type
angeben, beachten
Sie, dass Sie nur den Alphakanal eines BGPics ändern können,
das zur Zeit nicht einem Display zugewiesen ist. Ab 4.7 können
Sie auch als type
#LAYER
angeben, um den Alphakanal einer
Ebene zu ändern. Beachten Sie, dass wenn die Ebene eine Animebene
ist, müssen Sie auch die Nummer des Einzelbildes angeben.
Alphakanäle können verwendet werden, um jedem Pixel seine eigene
Transparenzeinstellung zu geben. Es stehen 256 verschiedene
Transparenzstufen für jedes Pixel zur Verfügung. Ein Alphakanalwert
von 0 bedeutet, dass das Pixel vollständig transparent ist
und bei einem Wert von 255 das Pixel undurchsichtig ist. Alle
Grafikbefehle von Hollywood wenden eine statische Alphakanalintensität
auf den Alphakanal des Grafikobjekts an. Sie können diese Intensität
mit dem Befehl SetAlphaIntensity() konfigurieren. Alternativ
können Sie den Alphadarstellungsmodus in den Vanilla-Kopiermodus
einstellen. Dies geschieht mit dem Befehl SetAlphaIntensity()
und mit #VANILLACOPY
als Argument. Dann werden alle Grafikbefehle
von Hollywood, die Alphakanalpixel ausgeben, die exakten Alphakanaldaten
auf den Alphakanal des Pinsels kopieren. Dieser Vanilla-Kopiermodus
ist eine neue Funktionalität von Hollywood 2.5.
Das Argument color
, welches mehrere Hollywood-Befehle (wie
Box() oder Circle()) erwarten, ist überflüssig, wenn sie Alphakanäle
bearbeiten. Für die Einstellung der Intensität benutzen Sie
den Befehl SetAlphaIntensity(), wenn Sie mit Alphakanälen arbeiten.
Alphakanäle werden in der Regel für die schönen Glanzeffekte im Hintergrund oder für Antialiasing-Kanten verwendet. Wenn Sie anstelle von unterschiedlichen Transparenzstufen nur zwei Möglichkeiten brauchen, nämlich transparente und undurchsichtige Pixel, sollten Sie SelectMask() verwenden, weil Masken schneller gezeichnet werden können. Bitte beachten Sie, dass Grafikobjekte nicht eine Maske und einen Alphakanal haben können, womit nur eine Transparenzeinstellung möglich ist. Wenn Sie also auf ein Grafikobjekt mit diesem Befehl zugreifen, welches eine Maske hat, wird diese Maske zuerst gelöscht werden.
Wenn die in id
angegebene Grafik noch keinen Alphakanal hat,
wird automatisch einer erstellt, wenn Sie einen Befehl aufrufen,
der auf den Alphakanal zeichnen will. Der Alphakanal wird undurchsichtig
erstellt, das heißt, jedes Pixel wird eine Alphaintensität
von 255 haben (0% transparent). Um den Alphakanal-Darstellungsmodus
zu beenden und wieder zurück zur Displayausgabe zu gelangen,
rufen Sie einfach den Befehl EndSelect() auf.
Wenn Sie einen Alphakanal nicht mehr benötigen, sollten Sie ihn mit dem Befehl DeleteAlphaChannel() vom Pinsel entfernen.
Sie können keine Pinsellinks mit diesem Befehl erstellen, da
die Grafikdaten zurzeit geändert werden. Es ist auch verboten
Befehle aufzurufen, die die Abmessungen des Pinsels/der Animation
ändern, die derzeit als Ausgabeziel verwendet werden. Dies
betrifft z.B. die Befehle ScaleBrush() oder ScaleAnim().
Darüber hinaus ist es für Animationen auch nicht erlaubt, SelectAlphaChannel()
zu verwenden, wenn sie von der Festplatte geladen wird. Animationen
müssen sich immer vollständig im Speicher befinden, wenn Sie
mit SelectAlphaChannel()
zeichnen möchten.
Nur Befehle, die statische Grafiken ausgeben, können verwendet
werden, wenn SelectAlphaChannel()
aktiv ist. Sie können keine
animierte Befehle wie MoveBrush() oder DisplayBrushFX()
benutzen, wenn SelectAlphaChannel()
aktiviert wurde.
Wenn Sie bei type
#LAYER
verwenden und die angegebene Ebene
eine Vektorebene ist, wird SelectAlphaChannel()
die Ebene zuerst
in eine Pinselebene rastern.
Siehe SelectLayer für Details.
Siehe auch EndSelect(), SelectBrush(), SelectMask(), SelectLayer(), SelectBGPic() und SelectAnim().
id
angegebenen Grafikobjekt; kann
#BRUSH
, #ANIM
, #BGPIC
oder #LAYER
sein (voreingestellt ist #BRUSH
) (V4.5)#ANIM
oder #LAYER
(falls die angegebene Ebene eine Animationsebene
ist) angeben wurde (V4.5)CreateBrush(1, 256, 50, #RED) ; erstellt 256x50 großen Pinsel SelectAlphaChannel(1) ; Ausgabeziel ist der Alphakanal For k = 255 To 0 Step -1 SetAlphaIntensity(k) ; Setzt Intensität auf k Line(255 - k, 0, 255 - k, 49) ; zeichnet Linien mit verschiedenen ... Next ; ... Intensitäten EndSelect ; Display ist wieder das Ausgabeziel DisplayBrush(1, #CENTER, #CENTER)Dieser Code erstellt einen Pinsel mit einer Breite von 256 Pixel und 25 Linien. Anschließend werden die 256 verschiedenen Transparenzstufen in den Pinsel gezeichnet. Das Ergebnis wird ein rotes Rechteck sein, welches glatt in das Hintergrundbild übergeht. Bitte beachten Sie, dass Sie einen Bildschirm mit 24 Bit für den vollen Augenschmaus benötigen. Bildschirme mit 15 und 16 Bit haben nicht genügend Farben, um alle unterschiedlichen Ebenen anzuzeigen.