Bezeichnung
CreatePort -- erstellt einen Nachrichtenport für Ihr Skript (V5.0)
Übersicht
CreatePort(name$)
Beschreibung
Mit diesem Befehl wird ein Nachrichtenport für Ihr Skript erstellt und ihm der angegebene Name zugewiesen. Um Nachrichten von SendMessage() zu empfangen, muss Ihr Skript einen Nachrichtenport haben. Andere Hollywood-Anwendungen können dann mit Ihrem Skript kommunizieren, indem sie Nachrichten an diesen Port senden. Alle Nachrichten, die zu Ihrem Nachrichtenport gelangen, werden an die Callback-Funktion weitergeleitet, welche Sie mit dem Befehl InstallEventHandler() dem Ereignis-Handler OnUserMessage zugewiesen haben. Wenn Sie den Ereignis-Handler nicht installieren, erhalten Sie keine Benachrichtigungen über eingehende Nachrichten.

Bitte beachten Sie, dass Nachrichtenportnamen immer in Groß-/Kleinschreibung notiert werden. Somit bedeuten "MYPORT" und "myport" zwei unterschiedliche Nachrichtenports. Aus Stilgründen wird empfohlen, dass Sie nur Großbuchstaben für Ihren Anschlussnamen verwenden. Außerdem muss jeder Nachrichtenport im System eindeutig sein. Wenn Sie einen Portnamen angeben, der bereits verwendet wird, schlägt dieser Befehl fehl. Stellen Sie daher sicher, dass Sie einen eindeutigen Namen verwenden.

Bitte beachten Sie, dass jedes Hollywood-Skript nur einen Nachrichtenport haben kann. Wenn Sie bereits einen Nachrichtenport angelegt haben und dieser Befehl erneut aufrufen, wird der alte Nachrichtenport gelöscht.

Siehe InstallEventHandler Für weitere Informationen, wie die Callback-Funktion des Benutzers aufgerufen wird.

Eingaben
name$
gewünschter Name für Ihren Nachrichten-Port
Beispiel
Function p_EventFunc(msg)
  Switch msg.action
  Case "OnUserMessage"
    Switch msg.command
    Case "EXIT"
      DebugPrint("Exit received! Quitting now.")
      End
    Default
      Local t = SplitStr(msg.args, "\0")
      DebugPrint(msg.command, "called with", msg.argc, "argument(s)")
      For Local k = 1 To msg.argc
         DebugPrint("Argument", k .. ":", t[k - 1])
      Next
    EndSwitch
  EndSwitch
EndFunction
CreatePort("MY_COOL_PORT_123")
InstallEventHandler({OnUserMessage = p_EventFunc})
Repeat
  WaitEvent
Forever
Speichern Sie den obigen Code als ein Hollywood-Skript und führen Sie ihn mit Hollywood aus. Dann speichern Sie den folgenden Code als neues Hollywood-Skript und führen ihn aus:


SendMessage("MY_COOL_PORT_123", "INIT", "Value1", "Value2", "Value3")
SendMessage("MY_COOL_PORT_123", "DO_SOMETHING", "Argument1")
SendMessage("MY_COOL_PORT_123", "EXIT")
Der obige Code kommuniziert dann mit dem ersten Skript. Sie sehen, dass die Nachrichten aus der Debug-Ausgabe von Skript Nummer eins ankommen.

Navigation zeigen