SelectLayer(id, [, mode, frame, combomode])
Das optionale Argument mode
ist auf #SELMODE_NORMAL
voreingestellt, womit nur die Farbkanäle der Ebene geändert werden.
Der Transparenzkanal der Ebene (ist entweder eine Maske oder ein
Alphakanal) wird dann nicht verändert werden. Sie können dieses
Verhalten ändern, indem Sie #SELMODE_COMBO
im optionalen mode
Argument übergeben. Wenn Sie diesen Modus verwenden, werden alle
Hollywoodgrafiken nach dem Aufruf von SelectLayer()
in die Farb-
und Transparenzkanäle der Ebene zeichnen. Wenn die Ebene keinen
Transparenzkanal hat, verhält sich #SELMODE_COMBO
gleich
wie #SELMODE_NORMAL
.
Ab Hollywood 5.0 können Sie das optionale Argument combomode
verwenden, um festzulegen, wie sich #SELMODE_COMBO
verhalten
soll. Wenn combomode
auf 0 gesetzt ist, werden die Farb-
und Transparenzinformation aller Pixel in dem Quellenbild in
jedem Fall zu dem Zielbild kopiert, selbst wenn die Pixel unsichtbar
sind. Dies ist auch voreingestellt. Wenn combomode
hingegen
auf 1 gesetzt ist, werden nur die sichtbaren Pixel in das Zielbild
kopiert. Dies bedeutet, dass, wenn der Alphawert eines Pixels
in dem Quellenbild 0 ist (unsichtbar), wird es nicht in das
Zielbild kopiert werden.
Ab Hollywood 6.0 steht die neue combomode 2 zur Verfügung.
Wenn Sie 2 in combomode
übergeben, wird Hollywood die Farbkanäle
und Alphakanäle des Quellbildes mit der Farbe und Alpha der
Zielbildkanäle mischen. Wenn Sie später das Zielbild zeichnen,
wird es so aussehen, als ob ein Bild hintereinander auf das
jeweils andere gezeichnet wurde. Bitte beachten Sie, dass das
Argument combomode
nur zusammen mit #SELMODE_COMBO
unterstützt
wird. Es hat keine Wirkung, wenn sie es mit den anderen Modi
verwenden.
Ein alternativer Weg in die Transparenzkanäle einer Animation
zu zeichnen, ist dies separat mit den Befehlen SelectMask()
oder SelectAlphaChannel() zu
erledigen. Diese beiden Befehle werden jedoch die Schreibdaten nur
auf den Transparenzkanal anwenden. Sie werden den Farbkanal nicht
ändern. Also, wenn Sie beide Kanäle (Farbe und Transparenz) ändern
wollen, müssen Sie SelectLayer()
mit mode
#SELMODE_COMBO
verwenden.
Wenn Sie mit dem ändern der Ebene fertig sind und möchten, dass Ihr Display wieder das Ausgabeziel wird, rufen Sie einfach den Befehl EndSelect() auf. Wenn Ihre Ebene sichtbar ist, wird Hollywood sie automatisch mit den Änderungen aktualisieren. Es ist wichtig zu berücksichtigen, dass die Änderungen nicht sichtbar sind, bevor Sie den Befehl EndSelect() aufgerufen haben.
Beachten Sie, dass Sie alle Befehle, die die Ebene ändern, nicht aufrufen, während sie als Ausgabeziel ausgewählt ist (z.B. SetLayerStyle() oder RemoveLayer()).
Es können nur Befehle von Hollywood verwendet werden, welche
Grafiken direkt zeichnen (wenn SelectLayer()
aktiv ist). Sie
können keine animierten Befehle wie MoveAnim()
oder DisplayBrushFX()
aufrufen, während SelectLayer()
aktiv ist.
Bitte beachten Sie, dass wenn Sie diesen Befehl für eine Vektorebene verwenden (zum Beispiel ein Vieleck oder Textebene), die Ebene automatisch gerastert wird. Das bedeutet, dass effektiv aus der Vektor- eine Pinsel-Ebene wird. Der Unterschied zwischen den beiden ist nur sichtbar, wenn es zur Umwandlung der Ebene kommt: Eine Vektorebene kann ohne Verluste in der Qualität frei umgewandelt werden. Gerasterte Pinselebenen auf der anderen Seite werden immer Verluste in der Qualität haben.
Siehe auch EndSelect(), SelectAlphaChannel(), SelectBrush(), SelectMask(), SelectBGPic() und SelectAnim().
#SELMODE_NORMAL
oder #SELMODE_COMBO
sein; voreingestellt
ist #SELMODE_NORMAL
#SELMODE_COMBO
aktiv ist, kann
0,1 oder 2 eingesetzt werden (siehe oben); voreingestellt ist 0SelectLayer(1) SetFillStyle(#FILLCOLOR) Box(0, 0, 320, 256, #RED) EndSelect()Der obige Code zeichnet ein 320x256 großes Rechteck auf Ebene 1.