HTML in Director! (06/1999)

In diesem Bereich befinden sich Artikel und Tutorials zum Thema Director.

Moderatoren: Bär, Admin

Antworten
Admin
Site Admin
Beiträge: 41344
Registriert: 07.02.2006, 2006 16:09
Wohnort: München
Kontaktdaten:

HTML in Director! (06/1999)

Beitrag von Admin » 12.02.2006, 2006 19:37

HTML in Director!

Director macht die Integration verschiedener Medientypen und Formate
bekanntlich leicht, und in den meisten Fällen ohne Programmierung möglich.

Die Einbindung von HTML-Seiten in ein Director Projekt ist oft von besonderem Vorteil, da bereits vorhandene HTML-Seiten einfach als solche importiert werden können.

Nehmen wir an, es soll eine kleine Firmendarstellung in HTML importiert werden um die schon vorhandenen Seiten 1:1 in eine Director Präsentation einbinden zu können. Die HTML-Seiten sind untereinander mit relativen Links (z.B. index.html, seite2.html etc.) referenziert und funktionieren folglich in einem normalen Browser on- und offline.

Die HTML-Seiten werden in Director als Text-Darsteller mit Hyperlink Styles versehen in der Darstellerbibliothek abgelegt. Die Links der HTML-Seite (HTML <A HREF> Tag) bleiben dabei (bis auf einige Ausnahmen) vollständig erhalten. Bei einem Klick auf einen Link wird die System Nachricht „hyperlinkClicked“ mit Angaben über den Link und den Text des Links ausgesendet.

Diese Nachricht kann nun von einem entsprechenden Handler abgefangen
werden, um entsprechende Reaktionen auszulösen.


Beispiel:

Der Darsteller (z.B. die Seite „index.html“) der ersten HTML-Seite wird
in Sprite 1 abgelegt. Ein Link auf dem Wort „Nächste Seite“ verweist in
HTML von der Seite „index.html“ auf die Seite „seite2.html“

Code: Alles auswählen

HTML:		<A HREF=“seite2.html“>Nächste Seite</A>
Beim Klick auf den Link wird entsprechend ie „hyperlinkClicked“Nachricht
mit dem Parameter Wert „seite2.html“ ausgesandt. Diese Nachricht können wir nun in einem Handler / Behavior abfangen und den geklickten Link im Nachrichtenfenster ausgeben:

Code: Alles auswählen

on hyperlinkClicked me, myLink, myRange
    put myLink
end
Der nächste Schritt ist nun, den Link entsprechend seiner Funktionsweise
in HTML, in Lingo umzusetzen. Der Link soll bewirken, daß die entsprechend referenzierte Seite beim Klick auf den Text – genau wie im Browser – angezeigt wird. Da alle HTML-Seiten als seperate Darsteller abgelegt wurden, muß dazu also lediglich der Darsteller des Sprites ausgetauscht werden:

Code: Alles auswählen

on hyperlinkClicked me, myLink, myRange
    sprite(me.spritenum).member = myLink
end

Das Problem:

So schön einfach das auch aussieht, leider funktioniert es so nicht.
Denn myLink ist schließlich „seite2.html“, und diesen Darsteller gibt es nicht.

Der Grund dafür ist, daß Director beim importieren der HTML-Seiten
die Darsteller zwar nach dem Namen der Datei benennt, allerdings wie
bei allen anderen Medientypen auch, die Dateityp Kennung „.html“ wegläßt.

Der importierte Darsteller heißt nun also „index“, oder „seite2“, die Links
referenzieren jedoch die Seiten „index.html“ und „seite2.html“.

Eine Lösung des Problems wäre es, einfach die Darsteller in „seite2.html“
umzubenennen was allerdings bei vielen Darstellern etwas aufwendig wäre.

Außerdem sollte z.B. beim Import neuer Dateien, oder einem Import
von HTML-Seiten über einen Webserver während der Laufzeit, stets die
gleiche Funktionalität gegeben sein.


Die Lösung:

Eine Lösung ist, einfach die „.html“ Endung des Links zu entfernen und
damit auf den vorhandenen Darsteller zu zeigen. Dabei sind eine
Vielzahl von Erweiterungen des Parser auf „.htm“, „.gif“ etc. Dateien
denkbar. Das folgende Behavior soll lediglich eine Anregung zum
Ausprobieren sein um die Möglichkeiten einer schon vorhandenen
HTML Struktur auch in Director nutzen zu können.

Code: Alles auswählen

-- Hyperlink Behavior
on hyperlinkClicked me, myLink, myRange
  
  -- Darsteller austauschen
  sprite(me.spritenum).member = stripExt(me, myLink, ".html")
  
end 

on stripExt me, str, ext
  -- Endung vom angegebenen
  -- String entfernen
  strLen = str.length
  extOff = offset(ext, str)
  delete char extOff to strLen of str
  return str
end
Einfach das obige Behavior auf den Sprite mit dem HTML-Text ziehen
und die gleiche Funktionalität wie in einem Browser ist gegeben.
Nun läßt sich dieses simple Behavior noch um viele Funktionen
erweiteren, allerdings kann man das am besten selbst durch eigenes
Experimentieren herausfinden.

Autor: Martin Kloss

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste