Bei allen Befehlen, die von Ihnen eine ID (Identität/Identifikator/Kennung) für das neue Hollywood-Objekt verlangen, können Sie Nil angeben. In diesem Fall wird Hollywood automatisch eine ID auswählen und an Sie zurückgeben. Dies ist besonders für größere Projekte nützlich. Wenn Ihr Projekt klein ist, ist es bequemer, die IDs selbst zu wählen, z.B:
LoadBrush(1, "brush1.iff") LoadBrush(2, "brush2.iff") LoadSample(1, "sample.wav") OpenFile(1, "file.txt") |
Wenn Ihr Projekt jedoch größer wird, kann das ID-Management
sehr aufwendig werden und niemand will sich mit einer Vielzahl
von unterschiedlichen IDs und Hollywood-Objekten beschäftigen.
So können Sie einfach Nil anstelle einer ID angeben und Hollywood
wird eine ID für das neue Objekt zurückgeben, die garantiert
eindeutig ist, weil es den speziellen Variablentyp #LIGHTUSERDATA
verwendet. Auf diese Weise wird sichergestellt, dass keine
ID-Konflikte entstehen. Außerdem wird Hollywood nicht eine
ID aus dem ID-Pool aussuchen (das heißt ganze Zahlen von 1
bis n). Somit werden alle normalen IDs immer noch zur Verfügung
stehen, z.B:
brush1 = LoadBrush(Nil, "brush1.iff") brush2 = LoadBrush(Nil, "brush2.iff") sample1 = LoadSample(Nil, "sample.wav") file1 = OpenFile(Nil, "file.txt") |
Die Variablen brush1
, brush2
, sample1
und file1
werden
keine für den Benutzer lesbare IDs generieren, aber spezielle
IDs vom Typ #LIGHTUSERDATA
erhalten. Somit werden alle vom
Benutzer lesbaren IDs ab 1 bis n immer noch verfügbar sein.
Daher müssen Sie sich nicht um irgendwelche ID-Konflikte sorgen,
wenn Sie Nil zum Erstellen von Objekten benutzen, weil Hollywood
zwei getrennte ID-Dimensionen verwendet: Eine für Benutzer
lesbare, die nur zur Anwendung kommt, wenn Sie eine ID bei
der Objekterstellung angeben und einen internen ID-Mechanismus,
der verwendet wird, wenn Sie anstelle einer ID Nil bei der
Objekterstellung eintippen.