DrPagel-FavIcon
« »

Zur Zeit sind die embed-TAGs im HTML-Quellcode zum Teil ausser Betrieb. Daher ist die Funktionalität teilweise eingeschränkt oder abgeschaltet.

In den Javascripts von flashsound.js scheinen schwere logische oder syntaktische Fehler zu existieren, so dass die onmouseover-Testobjekte (fett eingerahmte Testobjekte) zur Zeit ((ab) April2009) nicht funktionieren

Verfasst am 13.08.2006 15:22:42 Uhr
Synthetische Sprache im Weblog - Teil1

Wenn man sich mit synthetischer Sprache beschäftigen will, so kommt man nicht um die Kenntnis von SWF-Dateien und FlashPlayer oder interaktive Tonerzeugung herum. Schon Mr. Hayden Porter (Lit.1a» (inexist.Link im April2009 deaktiviert), Lit.1b» (im April2009 neuverlinkt); (siehe Nachtrag_4)) erkannte in seiner Einleitung (sinngemäß übersetzt durch mich):
Jedermann, der interaktiven (wechselwirkenden) Inhalt für Flash zu entwickeln erlernt, würde vermutlich darin übereinstimmen, daß interaktiver Ton die obskurste und schlechteste dokumentierte Eigenschaft von Flash ist. Sogar die Macromedia Flash-Dokumentation "Heck" habe einige fehlerhafte Informationen über Synchronisierungs-Einstellungen, die in unzähligen anderen Büchern über Flash vervielfältigt sind. Dieses sei unglücklich, weil Flash gerade genügend Flexibilität in diesem Bereich habe, um unwiderstehlichen interaktiven Ton zu unterstützen, aber das (nötige) Wissen um dies zu tun ist ein stark „unterirdisches“ (Insiderwissen).
Jacek Artymiak (Lit.») setzt sich damit auseinander, dass SWF-Format kein offenes Format sei und nur von Macromedia vertrieben wird und oftmals mit dem FLA-Format verwechselt wird. Er plädiert für ein offenes SVG-Format. Jeder lobt seinen eigenen Brei! Aber wenn ich nun mal SWF-Dateien vorliegen habe oder im Web erhalten kann, dann nützt mir das Wissen um ein anderes Format nur platonisch.

Einen deutschen (englischen) Text kann man ins Englische (Deutsche) übersetzen lassen, indem man den Wunschtext in dieses Formularfeld einträgt und abschickt:


Linksammler: Weitere Tests:
1: Test-Quellcode zu Untersuchungen zu:
Damit diese sofort nach Laden im Browser startenden swf-Dateien sowohl unter dem Internet-Explorer als auch unter dem Browser Firefox (Mozilla) abgespielt werden können, müssen die SWF-Dateien für Zwecke des I.E. über einem object-Parameter "param movie" unter dem object-Tag (und für Zwecke des Mozilla im embed-Tag) eingebunden werden. Zweckmäßigerweise verschachtelt man das ganze so, dass das initialisierende und endende object-Tag das embed-Tag einschließt; dies dient der Übersichtlichkeit, ist aber nicht zwingend (allerdings ist das embed-Tag HTML-invalide und wurde am 24.4.2009 inaktiviert bzw. ersetzt (siehe unten)).
  • Will man das sofortige Starten der swf-Dateien verhindern, muss für den I.E. im OBJECT-Tag ein Parameter <param name="play" mit dem Attribut (&Wert) value="false" bzw. für den Mozilla im EMBED-Tag ein Attribut (mit Wert) play="false" besetzt werden. Zwecks Nachtruhe ist das ganz o.k.. Jedoch weiß ich nicht, wie man die SWF-Datei dann überhaupt zum Laufen bekommt. Wäre play = "true", so könnte man im Falle loop = "false" durch ein Browser-Aktualisieren oder -Reload die SWF-Stimme wiederholen.
  • Auch ist mir noch unklar, wie man zwei verschiedene SWF-Dateien nacheinander zum Laufen bekommt, denn normalerweise beginnen sie alle sofort nach dem Browseraufruf; da das Wort "Untersuchungen" länger zum Laden als das Wort "zu" braucht, kann es sich so anhören: zu Untersuchungen!
Hier ist die Quelle der beiden Geisterstimmen, die sich beim Seitenaufruf von alleine melden (play-Status true)

2: Hier ein weiteres Testmodul, in welchem man manuell eine SWF-BeispielDatei...
  1. http://www.drpagel.de/speak_files/speak_herzlich_willkommen.swf
  2. http://sonify.org/home/feature/remixology/024_adaptivebuffer/switchback.swf
  3. http://www.sonify.org/home/feature/remixology/025_swfplayer/swfplayer.swf
... in die nachfolgende URL-Zeile eingeben kann (Lit.»; im April2009 leider inexist.) und womit man einer Abspielkonsole gleich die SWF-Datei mit Hilfe der Bedienelemente für "Start", "Pause", "Zurück" und "Stopp" (v.l.n.r (engl.:) "playing", "paused", "rewound", "stopped" ist eigentlich wfw (Wort-für-Wort) richtig übersetzt: "gerade am abspielen", "unterbrochen", "zurückgespult", "gestoppt") steuern können sollte;
Resumée:
  • für Beispiel1 gilt: Finger weg! Funktioniert nicht! Endlosschleife wird nur durch Browser-Stop beendet! mal etwas erfreuliches ist zu berichten, denn seit April2009 funktioniert auch Beispiel1 in der neuen OBJECT-Tag-Syntax einwandfrei. Vermutlich wegen der damaligen Probleme wurde ein <param name="allowScriptAccess" value="sameDomain"> eingeführt, doch kann über die Gründe des damaligen Nichtfunktionierens endlos spekuliert und philosophiert werden.
  • für Beispiel2+3 gilt im April2009: sowohl swfplayer.swf als auch switchback.swf als auch der remixology-Ordner von sonify.org existieren nicht mehr! Daher bleibt beim I.E. das untenstehenden Feld leer und der CodeFehler beim F.F. kann nicht ausgetestet oder behoben werden. - Doch am 30.4.2009 ist eine Teilrestauration möglich, denn swfplayer.swf wurde offline wiedergefunden. Gott sei Dank! - Solange der obige Link zur Datei switchback.swf ein gebrochener ist, also die swf-Datei nicht mehr gefunden wird, steht in der "Status-Anzeige" rechts neben den Bedienungselementen das Wort "loading" (siehe Nachtrag_8)
(object-Tag3 seit 24.4.2009 ohne embed (o.k.=: I.E.7, F.F.3.0.10 (siehe unten))
Objekt (Datei) fehlt oder ist nicht darstellbar, falls nachfolgend bis zur Zeile "[im April2009: mein ... " nichts zu sehen ist; leider ist ein ALT-Attribut im OBJECT-Tag html-invalide

[im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2009: Vers.6,0,29,0]

3: Nun erfährt man aus dem Sicherheitskonzept von Adobe-Flashplayern, dass es möglich ist, dass der Flashplayer dann nicht tut, was er soll, wenn die SWF-Datei ihren Ursprung in einer anderen Domain als der Player hat. Hierzu werde ich einen weiteren Test anlegen. Meine SWF-Datei wurden von www.dict.cc und nicht von www.sonify.org erzeugt und liegt zur Zeit (im Aug.2006) auf meiner www.drpagel.de-Domain. Also werde ich den Parameter-value von movie bzw. die src-Adresse von embed entsprechend abändern.
  • 1. im Original wird als entsprechende Movie-Quelle eine relative Adresse einer SWF-Datei von Sonify.org angegeben und der Player entstammt auch der Sonify.org-Domain.
  • 2. gebe ich meine Domain an, ist kein Player zu sehen und man kann auch keine SWF-Datei eingeben.
  • 3. gebe ich die www2.dict.cc-Adresse an, von der ich ursprünglich meine SWF-Datei bezogen habe, so höre ich von dict.cc eine Automaten-Stimme sagen, ich müsse erst ein cooky von dict.cc akzeptieren. Ersatzweise habe ich oben in das Translate!-Formular das Wort Untersuchungen eingegeben. Dann ist das Cookie wohl gesetzt oder ausgelesen und die Automatenstimme ist verstummt (funktioniert im April2009 nicht mehr, weil kein Cookie mehr gesetzt wird; siehe oben). Aber die Player-Konsole ist weder zu sehen noch kann man eine Datei eingeben.
  • 4. nachdem ich unter meiner Domain eine HTML-Seite mit diesem Player-Code angelegt hatte um zu schauen, ob auf diese Weise die Player-Konsole zu sehen ist und von dort die SWF-Datei abgespielt werden kann, ergibt sich beim Aufruf dieser HTML-Testseite ein sofortiges endloses Abspielen meiner SWF-Datei. Obwohl oder gerade weil ich dort kein Javascript benutze, erhalte ich diese Javascript-Fehlermeldung:
    Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIControllers.removeController]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://navigator/content/navigator.js :: Shutdown :: line 742" data: no]
Prädikat: hau den Lukas! hau feste drauf! bis zur Rotglut!.
Deswegen habe ich hier den OBJECT-Tag bzw. EMBED-Tag mit der eingebauten Macromedia-Niete wieder entfernt.
im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.6,0,29,0]

4: Hier ein weiteres Testmodul, in welchem man manuell eine SWF-BeispielDatei ...
  1. http://www.drpagel.de/speak_files/speak_herzlich_willkommen.swf
  2. http://sonify.org/home/feature/remixology/024_adaptivebuffer/switchback.swf
    Diese swf-Datei wird noch zitiert bei www.archive.org auf der Webseite http://web.archive.org/web/20070429112513/www.sonify.org/home/feature/remixology/025_swfplayer/. Leider ist sie im April2009 weder offline noch online existent (siehe Nachtag_8)
  3. http://tb-archiv.drpagel.de/zusa/interactivesound.swf
... in die nachfolgende URL-Zeile eingeben kann/konnte (Lit.»; im April2009 leider inexist.) und womit man einer Abspielkonsole gleich die SWF-Datei mit Hilfe der Bedienelemente für "Start", "Stopp/Zurück" steuern können sollte (schade, dass man hier keine "Pausen"-Funktion eingebaut hat!)

Resumée (im Aug.2006):
  • Es wundert mich sehr, dass bei der gleichen MacromediaNummer (6,0,29,0) wie oben hier auf einmal meine SWF-Datei richtig bedient werden kann? Ob das an der Java-Programmierung der Konsole liegt?
  • Aber bei mir zuhause hat dieser Player für beide Typen von SWF-Dateien sowohl mit dem Internet-Explorer als auch mit dem Mozilla funktioniert
Resumée (im Mai2009: (+1,5h (04.05.2009))):
  • Nur beim erstmaligen Aufruf der Testdatei oder falls das Cookie vorher gelöscht wurde, werden Angaben zu "media bitrate", "media size", "media duration", "user bandwidth" gemacht; im Beipiel1 wurden folgende Anzeigen gefunden:
    • "Enter SWF URL:" = ".../speak_herzlich_willkommen.swf"
    • "_soundbuftime" =: "7" (vermutlich Sekunden?)
    • "monitor status" =: "on" oder "off"
    • "current buffer" =: Countdown der Werte von "35%" nach "0%"; oder von "120%" nach "0%"; oder "100%"
    • "amaount to play" =: Countdown der Werte von "100%" nach "0%"
    • "load status" =: "complete" oder ""; oder "seeking"(falls ein gebochener Link vorliegt)
    • "play status" =: "playing" oder "end"
    • "media bitrate" =: "" oder "11.77 kbps"
    • "media size" =: "" oder "21 kb"
    • "media duration" =: "" oder "00:15"
    • "user bandwidth" =: "" oder "4807 kbps" oder "10681 kbps" oder "96133 kbps"; oder "Infinity kbps"
    • "Initial KB to load" =: "0 kb" oder "10 kb"
    • "Initial % to load" =: "0%" oder "49%"; oder "infinity"


(object-Tag4 seit 29.4.2009 ohne embed (o.k.=: I.E.7, F.F.3.0.9; siehe unten))
wiederentdeckt: http://web.archive.org/web/20050227113118/www.sonify.org/home/feature/remixology/024_adaptivebuffer/adaptivebuffer.swf
Objekt (Datei) fehlt oder ist nicht darstellbar, falls nachfolgend bis zur Zeile "[im April2009: mein ... " nichts zu sehen ist; leider ist ein ALT-Attribut im OBJECT-Tag html-invalide

[im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2009: Vers.6,0,29,0]

5: Hier ein weiteres Testmodul, in welchem man manuell keine SWF-BeispielDatei ...
  • 1.a: http://www.drpagel.de/speak_files/speak_herzlich_willkommen.swf
  • 1.b: http://sonify.org/home/feature/remixology/024_adaptivebuffer/switchback.swf
  • 2: http://sonify.org/home/feature/remixology/001_timelinesoundobject/soundobject1.swf
... in eine URL-Zeile eingeben kann, sondern separate Konsolen 1a, 1b, 2 angelegt wurden (Lit.»; im April2009 leider inexist.) und womit man einer Abspielkonsole gleich die SWF-Datei mit Hilfe der Bedienelemente steuern können sollte.
Resumée:
  • im April2009 gilt: sowohl swfplayer.swf als auch switchback.swf als auch der remixology-Ordner von sonify.org existieren nicht mehr! Daher bleibt beim I.E. das untenstehenden Feld leer und der CodeFehler beim F.F. kann nicht ausgetestet oder behoben werden.
  • 1.a+1.b: Für Beispiel 1 gilt: Funktioniert nicht! Siehe Punkt1 unter Test1; daher wurde diese Konsole wieder entfernt.
  • 2: (object-Tag4 seit 24.4.2009 ohne embed (o.k.=: I.E.7; n.o.k.=: F.F.3.0.9 (ohne embed-Tag fehlt das gerahmte vanillecremefarbene 175x87-Feld); siehe unten))
[im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2009: Vers.4,0,2,0]

6: In einem weiteren Test geht es nur um die primitive Start/Stop-Funktion. Nach meinem vorletzten Test-Stand (noch in 2006) ist es nicht möglich, die Muster-Datei "InteractiveSound.SWF" durch eine andere eigene SWF-Datei zu ersetzen, weil dann sogar schon die Abspielkonsole mit Start("Play")- und Stopp("Stop")-Schalter (Buttons) nicht mehr zu sehen ist und damit eine eigene SWF-Datei nicht mehr bedient werden kann. Das heißt: "Staune über die Möglichkeiten und träume Deine Träume!"
Resumée (im April/Mai2009 (+0,5h (04.5.2009))):
  • man weiß nun, dass die "play"/"stop"-Schalter integraler Bestandteil der swf-Datei sind, was bedeutet: eine andere SWF-Datei besitzt nicht notwendig die gleichen Bedienelemente. Wollte man an dessen Stelle "Start" und "Stopp" schreiben, so muss man die zugehörige *.fla-Datei ändern und anschließend in eine *.swf-Datei kompilieren. (siehe Nachtrag_5)
  • das Parameterattribut "menu" ist beim Firefox anscheinend nicht zwingend notwendig (siehe Lit.» kb2.adobe.com TechNote: Flash Object and Embed Tag Attributes)


(object-Tag5 seit 24.4.2009 ohne embed (o.k.=: I.E.7, F.F.3.0.10 (ohne embed-Tag fehlt das gerahmte vanillecremefarbene 200x75-Feld); siehe unten))
Objekt (Datei) fehlt oder ist nicht darstellbar, falls nachfolgend bis zur Zeile "[im April2009: mein ... " nichts (außer Text) zu sehen ist; leider ist ein ALT-Attribut im OBJECT-Tag html-invalide
... mit:
<param name="menu" value="false">
<param name="play" value="false">
<param name="wmode" value="transparent">
... mit:
<param name="menu" value="false">
<param name="play" value="false">
<param name="wmode" value="opaque">
... mit:
<param name="menu" value="true">
<param name="play" value="false">
<param name="wmode" value="opaque">

[im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.5,0,0,0]

Und Meister Porter zeigt hier Lit.1a» (inexist.Link im April2009 deaktiviert), (im April2009 neuverlinkte Lit.1b») auch, warum alle eigenen Tests "für die Katz'" sind:
Man darf dazu eine Datei "interactivesound.fla", gepackt als "interactivesound.zip" herunterladen, was mir auch gelang. Beim Entpacken wird geradezu eine Kaskade von Ordnern erstellt, angefangen mit "/My Documents". Darin enthalten ist "/web sites", darin "/sonify.org", darin "/tutorials", darin "/flash_audio", darin "/beginner", darin "/timeline", darin endlich die versprochene Datei "interactivesound.fla".
Nachträglich im April2009 erfahre ich, dass diese Ordner auf einen Server gehören und dass nur auf einem Server ein Programmm zur Flash-Entwicklung laufen kann! (siehe wikipedia-Link)
Mr. Porter bildet auf seiner Seite ein (Schnitt-)Programm oder Programmteil "Timeline" ab. Timeline sei "der Teil der Arbeitsoberfläche von Videoschnittprogrammen, der eine stilisierte Zeitleiste darstellt, auf der die Clips (Audio, Video, Effekte) angeordnet werden", so eine Lexika-Website (Lit.»). Auch von diesem Wissensmüll bekomme ich mit meinem PC meine eigene SWF-Datei oder interactivesound.fla nicht mit dem Timeline o.ä. bearbeitet bzw. ich habe kein Programm, welches damit etwas anfangen kann. Würde dort stehen, man könne ein Programm namens Timeline kaufen oder herunterladen, welches hierzu benötigt wird, wäre es eine kleine Hilfe.
So muss ich mich damit begnügen, zu erkennen, dass mit Hilfe von Timeline und einer *.FLA-Datei eine *.SWF-Datei erzeugt wird, in welcher nicht nur die "PLAY"- und "STOP"-Buttons, sondern auch die möglichen Labels und Aktionen einprogrammiert sind. Aha!


7: Aber nun kommt etwas, was mich sehr interessiert: Die onmouseover-Technik. Diese Technik soll nicht bei allen Browsern funktionieren (Javascript muss erlaubt sein!), auf der Originalseite lief sie bei mir zuhause sowohl mit dem Internet Explorer als auch Mozilla, nicht jedoch unter dem Opera. Hier im Weblog als auch auf einer Testseite unter meiner Domain funktionierte zwar die Javascript-Steuerung onmouseover onmouseout, jedoch war von dem versteckten (hidden) eingebetteten SWF-Player zunächst kein Ton zu entlocken. Der Durchbruch kam am 16.8.2006 um 1Uhr als endlich eine lokale HTML-Datei (auf dem PC) mit modifiziertem Quellcode funktionierte, obwohl die komplette heruntergeladene Seite mir diesen Gefallen nicht tat. Das Hauptproblem war die richtige URL-Adressierung der Javascript-Dateien. Auch unter meiner Domain funktioniert nun das Streichel-mein-Bild-und-höre-Geräusch-Verfahren!

Resumée (im Mai2009 (+2h (05.05.2009)), (+1,5h (06.05.2009))):
  • Da "haben wir noch mal Schwein gehabt", denn wäre die Datei "interactivesound.swf" nicht mehr offline vorhanden gewesen, hätte man die Funktionalität von Schlüsselwörtern (z.B.: "beamscan", "start", "stop") nicht mehr erkennen und ihre Bedeutung lernen können (siehe "Nachtrag_6")
  • die ursprünglich im alten Code an dieser Stelle benutzte Javascriptzuweisung var beamscan = new FlashSound(); ist wegen der Namensgleichheit mit dem "interactivesound.swf"-Schlüsselwort "beamscan" bzw. dem "fs_gotoAndPlay"-Target="/beamscan" für den Anfänger etwas verwirrend. Später (siehe bei www.archive.org dokumentierte analoge HTML-Seiten) wurde auch var mysound = new FlashSound(); verwendet. Es hätte auch eine beliebig anders bezeichnete Variable sein können. Hiermit wird, wie Porter es formulierte, die javascript-Function "FlashSound" einem neu angelegten "Container" zugeordnet, d.h. jedesmal, wenn der Name dieses Containers benutzt wird, beziehen sich die Javascriptangaben auf das Objekt "function FlashSound" mit ihren aktuellen Variablenwerten. Würde anstelle von "beamscan" ein anderes Phantasiewort "mysound" benutzt werden, so müssten lediglich die Javascriptfunktionen "onmouseover" und "onmouseout" andere Zuweisungen erhalten:
    onmouseover="mysound.TGotoAndPlay('/beamscan','start')"
    onmouseout="mysound.TGotoAndPlay('/beamscan','stop')"
  • das Kindelement namens ".TGotoAndPlay" zur Javascriptfunktion "FlashSound" bezieht sich wegen der Zuordnung this.TGotoAndPlay = fs_gotoAndPlay auf den Aufruf der Javascriptfunktion "fs_gotoAndPlay". Dortseitig muss die Variable "target" den Wert "beamscan" beinhalten, solange die H.Porter'sche swf-Datei "interactivesound.swf" verwendet wird. Da Porter auch die Frames mit Namen "start" und "stop" benannt hat, kann bei Verwendung von "interactivesound.swf" die Variable "frame" auch nur "start" oder "stop" heissen, selbst wenn neben den virtuellen Schaltern (siehe Testmodul_6) "play" und "stop" geschrieben steht.
  • doch das wichtigste ist die Zuordnung von "this.playerID" mit dem im OBJECT-Code genannten Attribut id="FlashSound_swf0". Die Javascriptfunktion "FlashSound" generiert diese Variablenbezeichnung mit dem Code
    this.playerID = FlashSound.IDstringPrefix + FlashSound.playerCount;
    . Also ist die ID des OBJECT-Tags nicht frei wählbar und falls die passende ID auf der HTML-Seite nicht zu finden ist, auch dann schweigt der Flashplayer beharrlich. Möchte man im Object-Tag eine andere ID verwenden, dann muss man die javascript-Funktion "FlashSound" abändern.
  • während die Datei "interactivesound.swf" auf dem F.F.3.0.10 ein Geräusch von sich gibt, falls man ihre vollständige URL in die Adresszeile des Browsers eingibt und den "play"-Button startet, hört man im April und Mai2009 nichts dergleichen, sooft man dem untenstehenden Bildchen eine onmouseover-onmouseout-Streicheleinheit verpasst.

    Doch solange in der Javascriptfunktion "fs_gotoAndPlay" die logische Variable "this.isPlayerReady()" unwahr (engl.: "false") ist, wird kein Geräusch erzeugt. Würde man sie "per Dekret" auf wahr setzen, dann vermeldet die Javascript-Fehlerkonsole, dass "window.document[this.playerID].TGotoLabel(target,frame);" keine Funktion sei. Setzt man die bekannten Werte manuell ein, so vermeldet die Javascript-Fehlerkonsole, dass "window.document.FlashSound_swf0.TGotoLabel keine Funktion sei.

    Die logische Variable "this.isPlayerReady()" ist solange unwahr, wie die Javascriptfunktion "fs_isPlayerReady()" den Wert "false" zurückgibt. Dies passiert bereits, falls "FlashSound.configuredForInteraction()" unwahr ist. Diese Variable wiederum wird in "fs_configuredForInteraction" geprüft. Dort ist zur Zeit bei Gebrauch des Firefox3.0.10 die Variable "FlashSound.supportsInteraction" wahr (engl.: "true"), aber sowohl "FlashSound.XPConnectInstallError" als auch "FlashSound.hasMinInteractivePlayer()" ist falsch (engl.: "false").

    Hier weiter im Test fortzufahren, würde eine nichtabzuschätzende Dauer benötigen. Daher wird die Weiterverfolgung auf einen unbestimmten Termin vertagt.



X1:
[FavIcon fehlt]
X2:




ueberarbeiten!


1:[FavIcon fehlt]
[Macromedia,SWF-Player,Vers.4,0,0,0]

(object-Tag6 seit 24.4.2009 ohne embed (o.k.=: I.E.7; n.o.k.=: F.F.3.0.9 (ohne embed-Tag); siehe unten)); da jedoch im April2009 die Datei interactivesound.swf nicht mehr existiert, funkt' sowie nix!

im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.4,0,0,0]

Gegenüber dem Flashplayer-HTML-Code enthält dieser Instantplayer-HTML-Code im Object-Tag einen zusätzlichen Eintrag id="FlashSound_swf0?" und entsprechend im Embed-Tag name="FlashSound_swf0?". Es hätte theoretisch auch eine andere Bezeichnung sein können, ist aber programmtechnisch urhebergewollt. Wesentlich ist, dass das ID-Attribut bzw. NAME-Attribut belegt wird um über Javascript adressiert / angesprochen werden zu können. Im Falle mehrerer interaktiver Sound-Dateien würde das Javascript automatisch fortlaufende FlashSound_swf-Indizes erzeugen. Zusätzlicher Parameter im Embed-Tag ist swliveconnect="true", dessen Bedeutung mir zur Zeit unklar ist. Von diesem Wissensmüll allein habe ich die onmouseover-Technik bei mir aber nicht zum Laufen bekommen. Erst nach längerem Javascript-Studium erfährt man, dass der hierfür als Object-Tag eingebundene Code nicht hier separat gepostet hätte werden brauchen, da er durch das eingebundene Javascript während der Ausführung des HTML-Codes zusätzlich erzeugt wird.

Doch war das Studium der Porter-Site nicht ganz nutzlos, denn man lernt: SWF-Dateien, die normalerweise beim Aufruf einer HTML-Seite (onload) selbständig zu tönen beginnen, kann man auch ohne eine zusätzliche Seite, praktisch "onDemand" zum Tönen zu bringen, indem man href="javascript://" als Ziel einer Verlinkung setzt.. Hierzu, glaube ich, brauche ich aber die riesige flashsound.js-Datei nicht?
Anm.: im April2009 funktioniert href="javascript://" nicht mehr

Überlieferte irrische Weisheit: "Der Programmentwickler rennt solange zu seinem weißen flash-Becken, bis er bricht!"


8: Learning by doing: Innerhalb der letzten Tage (bis z.16.8.2006) hat Mr.Porter seinen verwendeten HTML-Code durch andere Macromedia-Version abgeändert? Hier sollte die onmouseover-Technik auch funktionieren (leider im April2009 nicht mehr):


[Favicon fehlt]

[Favicon fehlt]

[Favicon fehlt]

[Favicon fehlt]
(object-Tag7 seit 24.4.2009 ohne embed (o.k.=: I.E.7; n.o.k.=: F.F.3.0.9 (ohne embed-Tag); siehe unten));
TESTobjekt

[im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.5,0,0,0]

9: Aber nun kommt etwas, was mich noch mehr interessiert: die onmouseover-Technik, angewandt auf Wörter, z.B.:
  • Untersuchungen zu
    [im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.4,0,0,0]

    Da hier das gleiche Geräusch wie im Beispiel davor benutzt wird, darf hier wegen der Eindeutigkeit das eingebettete Objekt im HTML-QuellCode nicht nochmals wiederholt werden, es sei denn, es bekommt eine andere Identifizierungsnummer (Attribut ID=... (object-Tag) bzw. NAME=... (embed-Tag)).
Gespannt bin ich aber nun, wie man mit jedem dieser Wörter ein anderes Geräusch verknüpfen kann? Das es ganz ohne Macromedia gehen müsste, hatte ich gehofft. Jedoch kann man mit dem Embed-Tag oder Object-Tag den Sound nur zusammen mit der Öffnung eines neuen Fensters erzeugen. Meine Ideen, mit onmouseover und href="javascript://" oder href="javascript:void(0)/" den Textaussprachen Töne zu entlocken, haben mir schon zuviel Forschungszeit gekostet. Nun habe ich mal bei www.dict.cc im HTML-Quellcode nachgesehen und festgestellt, dass dort eine freie Javascript-(popup-)Funktionen-Datenbank "overLIB" von Erik Bosrup benutzt wird. Werde ich gleich mal verlinken! Diese scheint der Schlüssel zum unsichtbaren Ansager ohne sichtbar neues Fenster zu sein, evtl. aber hilft aber auch das php-Programm von dict.cc nach, indem es unmerklich nach jeder Nutzer-Anfrage eine neue textidentische Seite mit Aussprache erzeugt und zum Browser des Nutzers schickt?
Wie dem auch immer sei. Am 19.8.2006 ist es mir erstmals in drpagel.log.ag und im April2009 nach fast zwölf Stunden Reparatur erstmals im Tagebucharchiv gelungen): (object-Tag8b (im JavaScript versteckt) (seit 2%.4.2009 "funzt" es im I.E.7 und im Firefox3.0.9 auch ohne embed-Tag; siehe unten));
  • Untersuchungen zu

    in meiner Version von Javascript-function speak_nopop ist seit dem 25.4.2009 das integrierte EMBED-Tag entfernt
    [im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.6,0,0,0]
  • (dp)

    Nachtrag_1 am 15.8.2006 um 06.30Uhr: Unterschiedliche Interpretation der Browser Internet Explorer und Mozilla beim Gebrauch vom DIV-Tag und LI-Tag.
    In dem vorangegangenen Beitrag über die SWF-Player kam es bei Tests zum Vorschein. Wenn man eine Liste mit LI-Tags durch ein DIV- (& /DIV-)Tag einrahmt (DIV, LI1,..., LIn, /DIV), so arbeitet der Mozilla wunschgemäß, der I.E. vergißt die DIV-Voreinstellungen spätestens mit dem ersten LI-Tag und rahmt nur den vor diesem LI-Tag stehenden Text ein. Anders ist es mit dem gleichzeitigen Nutzen des UL-Tags (also DIV, UL, LI1,..., LIn, /UL, /DIV). Dann arbeiten beide Browser gleich und umrahmen die gewünschte Textfläche DIV-gemäß. (dp)

    Nachtrag_2 am 15.8.2006 um 15.45Uhr: Mein sonify-Browsertest
    Heute wollte ich verschiedene Browser vergleichen, da z.B. die onmouseover-Technik nicht bei allen Browsern (z.B. Opera) funktioniert hat (siehe oben). (Ein nachträglicher Test im April2009 zeigt, dass bei Verwendung vom Apple-Browser Safari3.1.2 (g) die Werte von F.F. oder I.E. übernommen werden, falls F.F. oder I.E. die Standardbrowser sind.

    Display browser information, and Flash player configuration. Play a sound to verify that Flash is embedded.Wiedergabe der "Information über den Browser" und der "Konfiguration des FlashPlayer ("BlitzSpieler")". Es ertönt ein Geräusch um zu zeigen, dass ein Flash einbezogen ("eingebettet")/ vorhanden ist.
    Anm.: Dies erfordert beim I.E. die Zulassung von Add-ons (gemeint ist u.a. Active-X). Sonst wird folgende Fehlermeldung ausgegeben (z.B. beim Firefox (b), oder beim I.E. im sicheren Modus ohne Add-ons (d2)):
    Not minimum required player for embedding
    ... for interaction
    Nicht vorhanden ist das benötigte Minimum für die Einbettung
    ... für die Wechselwirkung
    Browser Information
    Application Name:NetscapeMicrosoft Internet ExplorerOperag: Netscape
    Application Version:a: 5.0 (Windows; en-US)
    b: 5.0 (Windows; de)
    c: 4.0 (compatible; MSIE 6.0; Windows 98)
    d: 4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; DT; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; DT)
    6.0 (Windows 98; U) g: 5.0 (Windows; U; Windows NT 5.1; de-DE) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21
    User Agent:a: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.13) Gecko/20060414
    b: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)
    c: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
    d: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; DT; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; DT)
    Opera/6.0 (Windows 98; U) [de] g: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21
    Supports Plug-ins:true-true g: true
    Supports LiveConnect:false-true g: false
    Java Enabled (LiveConnect only):true-true g: true
    Supports XPConnect:true-false g: true
    Supports ActiveX:-true- g: -
    ActiveX Enabled (ActiveX only):-true- g: -
    Configuration Problems:true c + d1: false
    d2: true
    ?? g: false
    Supports Embedding:true true true g: true
    Supports Interaction:true true true g: true
    Player Information
    FSAPI Minimum Required Player:4 4 4 4
    Has Minimum Required Player:a: true
    b: false
    c: true
    d1: true
    d2: false
    true g: false
    Has Minimum Required Interactive Player:a: true
    b: false
    must be 6r40 or greater for XPConnect Player
    c + d1: = wie vor (a)
    d2: = wie vor (b)
    = wie vor (a)g: = wie vor (b)
    Installed Player Version:a: 8
    b: 0
    c: 8 d1: 10
    d2: 0
    8g: 0
    Installed Player Release Version (Plug-ins only):22 - 22 22
    Plug-in Description (Plug-ins only):Shockwave Flash
    a: 8.0 r22
    b: 10.0.r22
    -= wie vor (a)g: = wie vor (b)
    Plug-in Name (Plug-ins only):Shockwave Flash - = wie vor (a) = wie vor (a)
    Configured to support Interaction:a: true
    b: false
    c + d1: true
    d2: false
    true g: false

    Weitere Browserinformationen kann man von meiner Seite abrufen, d.h. das Benutzerprofil wird immer umfangreicher. Und wozu nützt jetzt diese Browser- und Konfigurations-Information? (dp)

    Nachtrag_3 am 19.8.2006 um 12.50Uhr: Mein lieber Herr Gesangsverein!
    Nach unendlich langer Suche von Ursachen, weswegen das Tonabspielen meiner SWF-Dateien nicht funktionierte, ist mir soeben ein Licht aufgegangen.
    • Bisher erzeugte der Mozilla-Browser eine Javascript-Fehlermeldung:
      Error: over has no properties
      Source File: http://www.dict.cc/inc/overlib_mini.js Line: 549

      und dort in Zeile 549 steht:
      if(ns6)over.style.backgroundImage="none";
      weil offensichtlich eine Variable "picture" unbekannt ist.
    • Bisher erzeugte der Internet-Explorer eine Javascript-Fehlermeldung:
      Probleme mit dieser Webseite verhindern eventuell, dass die Seite richtig
      dargestellt oder ausgeführt wird. Doppelklicken Sie auf das Symbol in der
      Statuszeiel, wenn Sie diese Mittelung später erneut anzeigen möchten.
      [v] Diese Meldung immer anzeigen, wenn eine Seite Fehler enthält.

      ...mit dem Detail (Musterwerte):
      Zeile: 344
      Zeichen: 8
      Fehler: 'oframe.overDiv.style' ist Null oder kein Objekt
      Code: 0
      URL: file///C:MeineTestdatei.htm
    • Normalerweise steht dies im HTML-Quellcode der http://www.dict.cc-Seite und ist die Ursache für die vorgenannten Fehlermeldungen:
      <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
    • lädt man sich aber diese WebSite von www.dict.cc herunter auf seinen PC, dann oh Wunder, steht ganz etwas anderes im HTML-Quellcode, nämlich:
      <div id="overDiv"
      style="position: absolute; z-index: 1000; background-image: none; left: 0px; top: 291px; visibility: visible;"
      ><object
      classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
      codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
      height="1" width="1"
      ><param name="movie"
      value="http://www2.dict.cc/speak.audio.php?type=swf&id=
      ... (Id-Ziffer weggelassen) ...&lang=de"><param
      name="quality" value="high"
      ><param name="loop" value="false"><param
      name="bgcolor" value="#ffffff"
      ><param name="menu" value="false"><embed
      src="dict.cc%20dictionary%20%20%20
      ... (Suchwort weggelassen) ...%20%20%20English-German%20translation_files/speak.swf"
      loop="false" quality="high" bgcolor="#ffffff"
      type="application/x-shockwave-flash"
      pluginspage="http://www.macromedia.com/go/getflashplayer" menu="false"
      height="1" width="1"
      ></object></div>
    • evtl. wird durch die Abfrage vor dem Herunterladen vom php-Programm das vormals im Div-Tag "overDiv" fehlende Object- bzw. Embed-Tag nachgeliefert und daher gelingt auch die Tonwiedergabe.
    (dp) (+0,75h (27.10.2008))

    Nachtrag_4 am 25.4.2009 um 02.10Uhr:
    Im April2009 lese ich, dass seit November 2007 die "Sonify.org domain name and content is for sale". Also sind meine nachträglich neuverlinkten Seiten möglicherweise bald wieder "broken links". That is live! (dp)(0,25h)

    Nachtrag_5 am 26.4.2009 um 13.44Uhr:
    Nach gut drei Jahren ist mein "Blitz-Alptraum" ausgeträumt. Weder bei sonify.org noch bei drpagel.log.ag hatte ich Rechte, dort meine *.swf-Datei abzuspeichern. Daher konnte sie von einer fremden Domain-URL aus nicht abgespielt werden. Unter meiner Tagebucharchiv-URL gelingt jedoch die Animation. Beim F.F.3.0.9 unter Verwendung des alten OBJECT-Tag-Code erfordert noch das EMBED-Tag, wenn man nicht nichts sehen will:
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="200" height="75"><param name="movie" value="http://tb-archiv.drpagel.de/zusa/interactivesound.swf"><param name="quality" value="high"><param name="bgcolor" value="#ffff77"><embed src="http://tb-archiv.drpagel.de/zusa/interactivesound.swf" quality="high" bgcolor="#FFFFFF" width="200" height="75" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ></object>

    Damit es auch bei meiner Firefox-Version ohne Embed-Tag funktioniert, ist folgender OBJECT-Minimalcode notwendig:
    <object type="application/x-shockwave-flash" data="http://tb-archiv.drpagel.de/zusa/interactivesound.swf" border="1" height="75" width="200"><param name="movie" value="http://tb-archiv.drpagel.de/zusa/interactivesound.swf"><param name="quality" value="high"><param name="scale" value="NoBorder"><param name="bgcolor" value="#ffff77"><param name="loop" value="false"><param name="wmode" value="opaque"><param name="menu" value="false"><param name="play" value="true"><param name="swfversion" value="10.0.22.87"></object>


    [im April2009: mein Macromedia,SWF-Player,Vers.10,0,22,87; im Aug.2006: Vers.5,0,0,0]

    Gut, dass auf meinem Rechner zur Zeit bereits ein Flashplayer vorhanden ist. Für andere Fälle kann es sinnvoll sein, noch andere Parameter bzw. Attribute in
    • den OBJECT-TagCode aufzunehmen:
      • codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
        oder irgendeine höhere Version wie z.B. meine jetzige:
        codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,22,87"
      • id="meineIDnummer"
      • name="meinAnkerName"
    • die Codes der PARAM-Tags aufzunehmen:
      • analog zum BASE-Tag im HTML-Kopf (z.B.): <param name="BASE" value="http://www.magix-website.com/magix_website/flash/wm2/mwm/">
      • (z.B.): <param name="FlashVars" value="settings=settings_viewer.xml&userclassid=5806C430320411DE82D341C157916D3C&xmlpath=http://www.magix-website.com/website/xml&lang=de_DE_magix&draftid=801267&websiteid=631701&raisecounter=true">
      • <param name="ALLOWSCRIPTACCESS" value="always">
      • alternativ zu obigem Wert "opaque": <param name="wmode" value="transparent">
      • alternativ zu obigem Wert "NoBorder": <param name="SCALE" value="SHOWALL">
    Anm.: Vermutlich ist die richtige Groß-/Klein-Schreibung der Werte der PARAM-Tags unwichtig.
    (dp)(0,75)

    Nachtrag_6 am 26.4.2009 um 15.49Uhr:
    Ohne die interactivesound.swf-Datei von Porter decodiert zu haben, erkennt man mit einfachem Editor, dass dort die Begriffe "beamscan" und "start" und "stop" verwendet werden. Möglicherweise funktioniert die entsprechende *.swf-Datei nicht mehr, falls ...
    • ... diese Begriffe nicht mehr im eingebundenen Javascript-Code vorkommen
    • ... es sich um eine andere *.swf-Datei handelt, da dort andere oder garkeine entsprechenden Schlüsselworte vorkommen
    . Ich dachte bisher immer, zum Abspielen einer swf-Datei sei die Existenz eines Flash-Player hinreichend. Nun erkennt man, dass die korrekte Bezeichnung von Schlüsselworten notwendig ist. Ich sollte mal an etwas anderes denken. ... Zum Glück waren meine Befürchtungen übertrieben. Nach dem Umbenennen meiner javascript'schen "beamscan"-Variable funktionierte das Abspielen der swf-Datei trotzdem. (dp)(0,35h),(+2h (05.05.2009))

    Nachtrag_7 am 27.4.2009 um 12.39Uhr:
    Damit ich ohne vorhandenem Programm auch morgen noch weiss, welche Argumente die verwendete Javascript-Funktion "TGotoAndPlay" (bzw. "gotoAndPlay") erfordert, hier meine dts. Übersetzung zur englischsprachigen Beschreibung der Flashsound-API bei www.flashsoundapi.com (siehe oben):

    TGotoAndPlay (Ziel, Rahmen)
    Argumente

    Ziel (notwendig): es besteht aus dem Pfad und "timeline"-Namen des Ziels "timeline" unter Verwendung der "Schrägstrich"-Syntax.
    String-Typ.

    BrowserFensterRahmen bzw. Frame (notwendig): entweder eine Rahmennummer (integer) oder Rahmenkennung (String), wo die Wiedergabe zu starten sei.
    Integer oder String-Typ.

    Ob sich das Wort "required" auf die "slash"-Syntax oder den String-Typ bezieht, ist im ersten englischen Originalsatz nicht eindeutig gesetzt. Es macht Sinn anzunehmen, "required" beziehe sich auf die genannten Argumente "target" und "frame".

    Beispiele: Der von mir oben zitierte Autor hat seine Zeitlinie "mysound", das Ziel "/beamscan" und das Framefenster einmal "start" und ein anderes mal "stop" genannt.

    Beschreibung

    Verschiebt die Abspielposition zur Frame-Nummer oder Kennung des Ziel "timeline" und startet die Wiedergabe an diesem Punkt. Das Zielnamen von "timeline" verwenden die "Schrägstrich"-Syntax gleichsam wie beim pre-ECMA ActionScript. Verwenden Sie "/" für die Haupt-Zeitlinie (Elternelement). Die Frame-Nummerierung beginnt mit "1" für diese Methode, im Gegensatz zur nativen Flash-JavaScript-API, wo die Frame-Nummerierung bei "0" anfängt.

    Beispiel

    mysound.gotoAndPlay("/sometimeline",5)

    Das oben genannte Javascript entspricht den folgenden ActionScript.

    on (release) {
    sometimeline.gotoAndPlay(5);
    }

    Das Javacript des von mir zitierten Autors mysound.TGotoAndPlay("/beamscan","start") steht also für:
    on (release) {
    mysound.TGotoAndPlay("start");
    }

    Anmerkung: Im Gegensatz zu seinem Pendant ActionScript, ignoriert diese Methode stop()-Maßnahmen im Start-Frame und spielt bis zum Aufruf des nächsten Rahmen. Im obigen Beispiel würde der Flash-Player (zuerst) Frame 5 abspielen und bei Frame 6 weitermachen, oder aber bei Frame 1 weitermachen, falls Frame 5 der letzte Frame in timeline war, unabhängig davon, ob es eine stop()-Aktion im frame 5 gibt.

    (dp)(1,5h)

    Nachtrag_8 am 04.5.2009 um 12Uhr:
    Hayden Porter schreibt zu seiner Ton-Sequenz 'Switchback.swf' (Lit.»): "This recording excerpts the head section of one of my Jazz tunes, 'Switch Back'", was soviel bedeutet, dass seine switchback.swf den Ausschnitt der Kopfsektion seiner Jazztonfolge (/ Melodie) namens "Switch Back" (Schalte zurück! (dts.)) wiedergeben würde, falls man der Datei habhaft wird, es sich also um eine Audio-Beispieldatei handelt. Leider ist sie im weltweiten Netz nicht mehr zu finden. Andere google-Fundstellen ...
    • http://opp2.org/contributions/Switchback
    • http://jeffsarwer.com/movies/switchback.swf
    ... sind nicht die verschollene swf-Datei von H.Porter, die ich suche ... (dp)(2h)

    Fortsetzung folgt

    ANMERKUNG:
    • eine id-Nummer darf nicht mit der Ziffer 1 anfangen
    • invalide EMBED-Tags können durch validen HTML-Code ersetzt werden (siehe: www.homepage-forum.de/showthread.php?t=15651)
    • ein im Javascript verstecktes EMBED-Tag wird von validome.org nicht als html-invalide erkannt, z.B. in der function fs_createEmbedHTML in der Datei *flashsound.js
    • erstaunlicherweise interpretieren die Browser I.E. und F.F. die Hyperlink-Adresse href="" unterschiedlich. Sie bedeutet beim I.E. die URL der Eltern-Adresse (hier: http://tb-archiv.drpagel.de/) und beim F.F. die URL der aktiv besuchten Adresse (hier: http://tb-archiv.drpagel.de/TB_2006-08-13.html).
    • Im Element "object" ist das Attribut `ALT` nicht erlaubt. Bei Bildern (IMG-Tag) haben die Browserqualitätshüter Bedenken, ein Benutzer würde es nicht merken, falls es fehlt. Bei fehlenden Objekt-Darstellungen sind die Bedenken nichtexistent. - Sehr seltsam!!!
    • nachfolgende Notiz ist im TaBu-Archiv irrelevant (unbedeutend):
      WarnHinweis: Dieser Beitrag enthält nichtausführbaren HTML-Code (hier pinkfarben hinterlegt), indem nach jedem Aufruf vom freenet-Tagebuch-Menüpunkt "Einträge bearbeiten / Bearbeiten" die im Urtext verwendeten HTML-Entity-Wörter manuell wieder neu eingegeben werden müssen, falls die Einkapselung mit SPAN-Tags verloren gegangen ist.
    (validome.org und dict.cc sei Dank!)
    archiviert (tbid877.165): (dp) 19.02.2009 (+1,1h (+flagcounter +home.icon +w3c_LiCh +Link-korr. +4navi +html-korr.)), 22.4.2009 (+0,75h (html-korr.)), 25.4.2009 (+19,25h (+html-korr +object-test)), 26.4.2009 (+1h (+OBJECT-Test)), 27.4.2009 (+3,5h (Tests)), 29.4.2009 (+3,75h (+javascript-korr. +html-korr. +link-korr. +download +Recherche)), 30.4.2009 (+2h (+Recherche +html-korr.))
    Haftungsausschluss wegen embed-Tag invalide:[Valid HTML 4.01 fehlt]
    free counters
    © drpagel.de Alle Rechte vorbehalten.