Archiv für Juni 2004

Dynamische Sitemap in Flash

Mittwoch, 30. Juni 2004
Gerade darüber nachgedacht, ob eine dynamische Sitemap für (m)ein WeBlog interessant wäre.

Mein Gedankengang bisher:

  • User klickt auf Textlink “Sitemap”.
  • Die Site wird als Stadt in isometrischer Ansicht abgebildet.
  • Gebäude stehen für die Hauptbereiche der Site (Kategorien).
  • Bäume stehen für Besucher am Tag/im Monat.
  • Diese Bäume werden in bestimmten Arealen untergebracht, so dass erkennbar ist, dass der und der kleine Wald bedeuten soll, dass so und so viele Leute innerhalb dieses oder jenen Zeitraums ins WeBlog geguckt haben.
  • Statt Bäumen könnten auch kleine Figuren sich vor den Gebäuden tummeln oder Autos in den Straßen, je mehr Besucher im Zeitraum, desto mehr.
  • Externe Links, also solche, die zu anderen Websites führen, werden beispielsweise als Helikopter/Flugzeuge/Raketen dargestellt; bei Klick wird wie üblich ein neues Browserfensterle mit der entsprechenden Site geöffnet oder alternativ erst ein Infotext von mir über diese Site.
  • Strukturelle Verbindungen innerhalb der Site werden durch Straßen symbolisiert. Straßen haben vielleicht auch Namen…?
  • Der Inhalt der Schreischachtel/Shoutbox oder anderer Bereiche, wo meine Leser zu Wort kommen, könnten auf einer Art Leinwand in einem stilisierten Open-Air-Kino angezeigt werden.
  • Die Sitemap könnte sich zoomen und rollen lassen.
  • Straßenlaternen könnten als Indikator benutzt werden für die Frequentiertheit einer Site-Kategorie (wird aber momentan noch gar nicht geloggt).
  • Auf rollOver geben die meisten Elemente noch Zusatz-/Detailinformationen an (Anzahl der Beiträge einer Kategorie, etc.).
  • Fenster in Häusern stehen für die letzten X Beiträge und können überrollt und geklickt werden.

Code Beautification II

Dienstag, 29. Juni 2004
Ich glaube es zwar selbst kaum, aber ich habe den bisherigen Teil des Tages tatsächlich komplett darauf verwandt, mich mit Regular Expressions herumzuschlagen – und bin letztlich mit wenigen Ausnahmen wieder beim Skriptansatz von gestern gelandet.

Einigermaßen zufrieden bin ich allerdings trotzdem. Das Skript kann hier (leider nicht mehr) als Textdatei eingesehen werden. Hier hingegen wird (leider nicht mehr) das angehübschte Skript gezeigt. Falls ich das Skript weiterentwickele, aktualisiere ich die Dateien ebenfalls.

Wie zu erkennen ist, ersetze ich einige Elemente per str_replace und andere mittels preg_replace. Der Mausereignis-Handler on () zum Beispiel würde – als Keyword in $arCommands untergebracht und mit str_replace verarbeitet – dazu führen, dass die zwei Buchstaben “on” überall, wo sie auftreten(!), in blau angezeigt werden würden, also auch in Kommentaren oder in Funktionsnamen. Anhand des Trace-Strings ist zu sehen, dass das “on” dort nicht hervorgehoben wird.
Mir ist klar, dass das Syntax Highlighting in Flashs Entwicklungsumgebung um einiges intelligenter arbeitet und dass ich theoretisch für alle Keywords RegEx verwenden sollte, aber naja.

Die Anpassung der Farbwerte (z.Zt. nur zwei verschiedene, grün und blau) ist einfach durch eine entsprechende Änderung der zwei Variablen $makeBlue1 und $makeGreen1 zu bewerkstelligen.

Ferner ist zu erkennen, dass ich längst nicht alle ActionScript-Keywords in den zwei Arrays untergebracht habe, die die farbige Hervorhebung regeln. Stefkos Vorschlag, diese in externen Dateien zu lagern, ist sehr gut. Dennoch muss ich noch darüber nachdenken, wie weit ich diese Code Beautification treiben will, geht es doch nur um ein paar gelegentliche Codeschnipsel hier im WeBlog…

Ich habe noch keinen Schimmer, wie ich Kommentare (mehr- oder einzeilig) verschönere, also beispielsweise in grau anzeigen lasse. Ich kann zwar nach /* und */ suchen lassen, aber wie ich den Bereich dazwischen zu fassen bekomme, um ihn nach erfolgreichem Fund verändert anzuzeigen, geht zumindest momentan noch über meinen Horizont (Pattern als Ansatz: /\/\*.*\*\//).

Code Beautification I (Syntax Highlighting)

Montag, 28. Juni 2004
Aufgrund eigenen Bedürfnisses, das durch einen Kommentar an anderer Stelle durch Marcello noch verstärkt wurde, habe ich mir heute mal erste Gedanken zum Thema Syntax Highlighting oder Code-Darstellungsverschönerung gemacht. Es geht um die Zeilen Code, die ich hier im WeBlog veröffentliche. Befehle, Methoden, Eigenschaften und dergleichen sollen farblich hervorgehoben werden, um die Lesbarkeit zu erhöhen.

Mein erster Versuch ist mega-unelegant, selbst für einen PHP-Neuling wie mich, und zeitigt auch nicht das gewünschte Ergebnis. Im wesentlichen habe ich in einem Array die Keywords abgelegt, die gehighlighted werden sollen (z.B. onClipEvent oder _xmouse), und im einem zweiten Array den jeweiligen Ersatzstring (z.B. [font color="#0000FF"] onClipEvent [/font]; HTML-Tag-Klammern ersetzt, da sie sonst hier im WeBlog geparst werden).

Auszug:
$arCommands = array(
“onClipEvent”,
“_x”,
“_xmouse”
);
$arCommandsReplace = array(
“[font color=\"#0000FF\"]onClipEvent[/font]“
}

Mittels str_replace lasse ich dann den an die Funktion beautify ($uglytext)  als String übergebenen “hässlichen” Code durchlaufen und die Keywords ersetzen:

$text = str_replace ($arCommands, $arCommandsReplace, $uglycode);

Die meisten Keywords werden auch wie gewünscht ersetzt, doch eben nicht alle, und das Ergebnis zeigt mir auch, dass die Sache nicht ganz so einfach ist. Ein Beispiel sei genannt: Die beiden Eigenschaften _xmouse und _x werden auch ersetzt - <font color=”#00FFFF”>_x</font>mouse.

Also nur zur Hälfte. Warum? Weil ich in meinem jugendlichen Leichtsinn VOR dem _xmouse-Ersatzstring einen für die Eigenschaft _x im Array definiert habe. Wenn also ein paar Millisekunden nach _xmouse gesucht wird, wird es nicht mehr gefunden, weil es bereits in [HTML]_x[HTML]mouse umgewandelt worden ist.

Gut, Reihenfolge umzudrehen - lange Versionen nach oben - wäre eine Lösung dafür. Aber das ganze Skript ist viel zu lang und plump. Deswegen schaue ich mir jetzt das Thema Reguläre Ausdrücke mal genauer an. Wenn bis 2300 noch etwas dabei herauskommt, landet das Skript hier im WeBlog. Ansonsten manjana… :-)

Zeilenumbruch per PHP mailen

Freitag, 25. Juni 2004
Ich stand bis eben noch vor dem Problem, dass ich Inhalte eines FMX-Inputfeldes an ein PHP-Skript übergeben und per Mail versenden wollte. Nicht die Datenübergabe hin und her war bockig, sondern die Zeilenumbrüche, die im Inputfeld gesetzt wurden, entfielen in der als text/plain versendeten Email.

Die Umwandlung des User-Kommentarstrings $user_comment mit der folgenden Zeile schaffte Abhilfe, indem der einfache Wagenrücklauf (\r) noch um einen Zeilenvorschub (\n) zu \r\n ergänzt wurde:

str_replace(”\r”, “\r\n”, $user_comment);

Auf gut Deutsch: “Finde alle Vorkommen von “\r” in der Variablen $user_comment und ersetze sie durch “\r\n”.

Mit…

$string = preg_replace(’/\r\n|\r|\n/’, chr(13), $string);

…lässt sich per PHP jedes Vorkommen eines (möglicherweise doppelten) Umbruches in einen einfachen Umbruch verwandeln.

loadSound()

Dienstag, 22. Juni 2004
Mein Freelancer-Kollege Sven hatte gerade das Problem, dass ein per loadSound(”meinmp3file.mp3″, true) gestreamter Sound mit nahezu doppelter Geschwindigkeit abgespielt wurde, was mitunter sicher witzig sein kann, bei seinem klassischen Soundtrack aber eher unpassend wirkte.
Wie üblich in solchen Fällen, wo ich selbst keinen Rat weiß und auf dieser Suchseite nichts Klärendes finden kann, gab ich die Frage an die deutschsprachige Newsgroup Macromedia.General.Germany (Anmerkung vom 7.Mai 2008: …die heute so gut wie tot ist) weiter.

Meine dortigen Mitstreiter Rolphee, Michael Kneib und Matthias Kannengießer (wurde zitiert) halfen mir und Sven aus der Klemme. Ursache für das akustische Phänomen war, dass Sven die MP3-Datei mit einer Bitrate von 32kHz gespeichert hatte (fragt mich nicht, warum *g*). Bei 44.1 kHz lief’s wie gewünscht.

Ferner hier das Zitat von M. Kannengießer auch zu diesem Thema:
“Die folgenden Datenraten (Bitraten) werden sauber von Flash verarbeitet:
8, 16, 20, 24, 32, 48, 56, 64, 80, 112, 128, 160.”

Codierung in Textdateien

Dienstag, 08. Juni 2004
Habe mich gerade wieder durch X Webseiten geGOOGLEt, bis ich auf der Suche nach einem Hinweis fündig wurde°, wie ein Ampersand/Kaufmanns-Und (&) codiert werden muss, das in einer per loadVariables / loadVars in Flash hineingeladenen Textdatei steht - %26 wäre es gewesen.
Denn jenes kleine Scheißerchen macht ja insofern Sorgen, da es eine Variable-Wert-Zuordnung unterbricht, wenn z.B.
var1=Scholz & Friends ist eine Agentur&var2=Da ist es auch schon passiert&
in der Textdatei steht. Das & nach Scholz muss also durch %26 ersetzt werden, dann gibt es keinen Ärger.

Auszug aus der ASCII-Tabelle:
%20: (Leerzeichen)
%22: “
%24: $
%25: %
%26: &
%2B: +
%2F: /

Die Codierung für einen Gedankenstrich bzw. eine Möglichkeit zur Darstellung in Flash suche ich immer noch, fürchte aber, dass dies nicht geht.

° Quelle und Surf-Tipp: http://de.wikipedia.org/wiki/ASCII