Bezeichnung
MergeLayers -- führt Ebenen in eine neue Ebene zusammen (V10.0)
Übersicht
MergeLayers(layer1[, layer2, ..., t])
Beschreibung
Dieser Befehl fügt die durch 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:
Gibt an, ob die Quellebenen automatisch von 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:
Legt fest, ob ein möglicher Ebenenschatten ebenfalls in die neue Ebene eingefügt werden soll oder nicht. Dies ist standardmäßig 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:
Legt fest, ob eventuelle Randeffekt der Ebene ebenfalls in die neue Ebene eingebunden werden sollen. Dies ist standardmäßig 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:
Gibt an, ob eventuelle Ebenenfilter auch in der neuen Ebene eingebunden werden sollen. Dies ist standardmäßig 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:
Legt fest, ob eventuell vorhandene Ebenentransparenz ebenfalls in die neue Ebene eingebunden werden soll. Dies ist standardmäßig 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:
Legt fest, ob eventuelle Ebenenübergangseffekte ebenfalls in die neue Ebene eingefügt werden sollen oder nicht. Dies ist standardmäßig 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.

Eingaben
layer1
erste Ebene oder Ebenengruppe, welche zusammengeführt werden soll
...
weitere Ebenen oder Ebenengruppen zum Zusammenführen
t
optional: Tabelle mit weiteren Optionen (siehe oben)
Beispiel
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.

Navigation zeigen