vorhandene SWFs im Navigator mit onclick durch andere erstzen?
Patrick
- javascript
Seid mir gegrüßt.
Ich hoffe ich bin in einem einigermaßen richtigen Themenbereich mit meinem Anliegen.
Auf meiner Seite habe ich ein SWF eingebunden umd damit den Sound zu realisieren. (siehe Beispiellink) Es sollen mehrere Musikstücke zur Verfügung stehen die durch klick gestartet werden sollen -allerdings unbedingt aus HTML heraus. Das heißt, ich habe zunächst ein (mehr oder weniger) leeres SWF auf der Seite. durch Klick (z.b. auf einen Button) soll dieses eingebundene File durch ein anderes ersetzt werde.
Ach ja, bevor der Vorschlag kommt: Ich möchte definitiv kein einzelnes Flash-file mit mehrern mp3-streams verwenden weil das für mich extrem unpraktisch ist und ich Flash eh nicht so mag (leider komme ich hier nicht drum rum). Das heißt, für jedes Musikstück soll das vorhandene leere (oder gerade abspielende) mit dem entsprechenden SWF ersetzt werden. Pro Musikstück also ein SWF. und vorausgeladen soll natürlich auch nichts werden.
Mit dem IE habe ich das inzwischen zum laufen gebracht aber Netscape ruft SWFs ja mit <embed> auf. Ich hoffe ihr könnt mir einen Tip geben wie (oder ob überhaupt) so etwas für den Navigator zu realisieren ist. Irgendwelche 4.x Versionen oder schlimmeres müssen dabei natürlich nicht berücksichtig werden. ;)
So sieht der Quellcode in der einfachsten Form aus. mit Klick auf den Button wird das SWF mit dem MP3-stream durch ein (fast)"leeres" ersetzt, wodurch der Sound gestoppt wird. (würde natürlich andersrum auch mit Starten funktionieren)
-leider aber bisher nur beim IE.
------------------------------------------------------------------
<object name="bsp_ballade" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.#version=5,0,30,0" height="32" width="128">
<param name="movie" value="bsp_ballade.swf">
<param name="quality" value="best">
<param name="play" value="true">
<embed name="bsp_ballade" height="32" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" src="bsp_ballade.swf" type="application/x-shockwave-flash" width="128" quality="best" play="true">
</object>
<form>
<input onclick="document.bsp_ballade.movie='bsp_empty.swf'" type="button" value="Sound anhalten">
</form>
------------------------------------------------------------------
hier noch mal der Link:
http://web4.genf018.server4free.de/files/musik_temp.html
Schon mal vielen Dank im Voraus
Grüße,
Patrick
Hallo Patrick, sei mir auch gegrüßt,
was Du da willst, hab ich mal realisiert. Allerdings funktioniert das ganze nur mit Frames. Das bzw. die SWFs wird/werden in ein verstecktes Frame gepackt (in meinem Fall ist es sogar sichtbar, als 1px Trennlinie), und innerhalb des Framesets nach Bedarf ausgetauscht.
Funktioniert in jedem? Browser, der Frames und Flash unterstützt.
Mit Javascript hat das allerdings nichts zu tun.
Kannst Dir's ja mal anschauen:
http://www.the-magics.de/demos.html
Gruß Fritz
Hallo Fritz!
Vielen Dank. Ich hab mir deine Seite mal angesehen und das sieht gut aus und funktioniert wunderbar. Die idee mit den Frames ist ja richtig klasse. Bin total begeistert. :) Mit einem iframe und einer simplen Seite pro SWF müsste das ja gut zu machen sein. Also danke schön noch mal. Das werde ich auf jeden Fall mal versuchen.
Gruß
Patrick
Auf meiner Seite habe ich ein SWF eingebunden umd damit den Sound zu realisieren. (siehe Beispiellink) Es sollen mehrere Musikstücke zur Verfügung stehen die durch klick gestartet werden sollen -allerdings unbedingt aus HTML heraus. Das heißt, ich habe zunächst ein (mehr oder weniger) leeres SWF auf der Seite. durch Klick (z.b. auf einen Button) soll dieses eingebundene File durch ein anderes ersetzt werde.
Patrick, wenn du schon Flash verwendest, warum benutzt du dann nicht auch seine Funktionen. Eine Random Funktion in Actionscript einzubauen die externe swf files laedt ist sehr einfach und dauert nicht laenger als ein paar Minuten.
So kannst du seperate swf files ueber das swf file das als Platzhalter geladen wird nachladen ohne den User die gesamte Dateigroesse aller externen swf files aufeinmal anzutun.
So wirst du auch keine Browserinkompatibilitaeten haben.
Thomas
Hi Thomas.
Danke für deine Anregung. Ich weiß was du meinst aber das ist leider für mein Vorhaben nicht gut geeignet. Ich glaube du hast dass so aufgefasst das ich einen zufälligen Sound im Hintergrund laufen haben möchte, oder? Ich möchte aber eine HTML-Tabelle erstellen die ich schnell und problemlos mit neuen Tracks erweitern kann. Außer dieser Liste soll der User anhand der Trackinfos in die Stücke reinhören können. So eine Liste mit Flash zu erstellen macht weit mehr Arbeit und ich möchte die auch nicht ständig neu kompilieren. Außerdem wollte ich die sichtbaren Flashelemente auf der Seite auch möglichst gering halten. Das bei dem Link war nur ein Beispiel zur Veranschaulichung . Der Sound soll dem User auch nicht auch nicht unaufgefordert entgegendudeln. ;)
Grüße, Patrick