MergeLayers(layer1[, layer2, ..., t])
layer1
, layer2
usw. angegebenen
Ebenen zu einer neuen Ebene zusammen, wobei die Quellebenen
erhalten bleiben. Standardmäßig blendet MergeLayers()
die Quellebenen
automatisch aus, aber dieses Verhalten kann geändert werden,
indem das Tag AutoHide
im optionalen Tabellenargument auf False
gesetzt wird. Statt einzelner Ebenen können Sie diesem Befehl
auch Ebenengruppen übergeben, die zusammengeführt werden sollen.
Die neue Ebene, die von MergeLayers()
erstellt wird, verwendet
den speziellen Ebenentyp #MERGED
. Ebenen vom Typ #MERGED
können
nicht transformiert werden (außer durch die Ebenenskalierung)
und enthalten normalerweise alle Einstellungen ihrer untergeordneten
Ebenen, z.B. Schatten, Rahmen, Filter, Transparenzeinstellungen
usw., die in die Ebene gerendert werden, obwohl dies mit bestimmten
Tags im optionalen Tabellenargument geändert werden kann. Im
Vergleich zu Ebenengruppen, die mit GroupLayer() erstellt
wurden, besteht ein Vorteil zusammengeführter Ebenen darin,
dass sie bei der Anzeige mit Übergangseffekten als Ganzes behandelt
werden, während bei der Darstellung von Ebenen, die Teil einer
von GroupLayer() erstellten Gruppe sind, würde die Verwendung
von Übergangseffekten die Übergänge auf jede Ebene der Gruppe
einzeln anwenden, was möglicherweise nicht immer so gut aussieht,
wie wenn die Übergänge auf die Ebenen als Ganzes angewendet
werden. Diese Einschränkung von GroupLayer() kann also
durch die Verwendung von MergeLayers()
überwunden werden.
Das optionale Tabellenargument t
kann die folgenden Tags enthalten:
AutoHide:
MergeLayers()
ausgeblendet
werden sollen oder nicht. Standardmäßig blendet MergeLayers()
automatisch die Ebenen aus, die zu einer neuen zusammengeführt
werden. Wenn Sie das nicht möchten, setzen Sie diesen Tag auf
False
. Voreingestellt ist True
.
MergeShadow:
True
. Wenn Sie dies auf False
setzen, wird kein Schatteneffekt
von einer der Quellebenen mit der neuen Ebene zusammengeführt,
so dass die neue Ebene ohne Schatten erscheint. Natürlich ist
es möglich, der neuen Ebene mit SetLayerShadow() oder
den Standard-Tags zum Zeichnen einen
Schatten hinzuzufügen.
MergeBorder:
True
. Wenn Sie dies auf False
setzen, wird kein Rahmeneffekt
von einer der Quellebenen mit der neuen Ebene zusammengeführt,
so dass die neue Ebene ohne Rahmeneffekt erscheint. Natürlich
ist es möglich, der neuen Ebene mit SetLayerBorder()
oder den Standard-Tags zum Zeichnen
einen Randeffekt hinzuzufügen.
MergeFilter:
True
. Wenn
Sie dies auf False
setzen, wird kein Filter aus einer der Quellebenen
mit der neuen Ebene zusammengeführt, so dass die neue Ebene
ohne Filter angezeigt wird. Natürlich ist es möglich, der neuen
Ebene Filter hinzuzufügen, indem Sie SetLayerFilter()
oder die Standard-Tags zum Zeichnen
verwenden.
MergeTransparency:
True
. Wenn Sie dies auf False
setzen, wird keine Transparenz
von einer der Quellebenen mit der neuen Ebene zusammengeführt,
so dass die neue Ebene ohne Transparenzeinstellung angezeigt
wird. Natürlich ist es möglich, die Transparenz der neuen Ebene
mit SetLayerTransparency() oder den Standard-Tags zum Zeichnen
einzustellen.
MergeFX:
True
. Wenn Sie dies auf False
setzen, wird kein
Übergangseffekt von einer der Quellebenen mit der neuen Ebene
zusammengeführt, so dass die neue Ebene ohne Übergangseffekte
angezeigt wird.
Darüber hinaus unterstützt das optionale Tabellenargument auch Hollywoods Standard-Tags zum Zeichnen. Siehe Standard-Tags zum Zeichnen für weitere Informationen über die Standard-Tags, die fast alle Hollywood-Zeichenbefehle unterstützen.
Beachten Sie, dass zusammengeführte Ebenen nicht automatisch
aktualisiert werden, wenn ihre Quellebenen ihre Grafik ändern.
Sie müssen den Befehl RefreshLayer() verwenden, um eine
Aktualisierung einer zusammengeführten Ebene zu erzwingen. Siehe RefreshLayer für Details.
Beachten Sie auch, dass nur sichtbare Ebenen zusammengeführt
werden. Ausgeblendete Ebenen werden von MergeLayers()
ignoriert.
Sie müssen Ebenen aktivieren bevor Sie diesen Befehl nutzen können. Siehe Einführung in die Ebenentechnik für Details.
EnableLayers SetFillStyle(#FILLCOLOR) SelectBGPic(1) Box(0, 0, 100, 100, #RED) Box(100, 0, 100, 100, #GREEN) Box(200, 0, 100, 100, #BLUE) MergeLayers(1, 2, 3, {Name = "newlayer", Hidden = True}) MoveLayer("newlayer", #CENTER, #CENTER) EndSelect ShowLayerFX("newlayer", #ZOOMCENTER)Der obige Code erstellt drei ausgeblendete 100x100-Rechtecke, fügt sie zu einer neuen Ebene zusammen, verschiebt diese neue Ebene in die Mitte und zeigt dann die zusammengeführte Ebene mit einem Übergangseffekt. Beachten Sie, dass wir SelectBGPic() verwenden, um sicherzustellen, dass vor unserem Aufruf von ShowLayerFX() nichts gezeichnet wird.