Hi, hi,
ich habe eine kleine Gif-Animation. Diese soll aber erst nach anklicken eines Radiobuttons ablaufen. Mein Versuch mit einem onClick- Eventhandler sah etwa so aus:
<script>var Show = "";
function HiNicklesForum() {
Show = "DieSuperDatei.gif" }
</script>
</head><body><img src="bild.jpg" align="right" />
<script>document.writeln(Show)
</script>
Eventhandler ist eigentlich kein Problem. (Teste das immer mit onClick="alert(\'Neein, immernoch Windows\')").
Lasse ich das fett gedruckte weg, läuft die Animation.
Mit gezieltem aufrufen und erhoffter Datenübergabe per Funktion geht es aber leider nicht.
Hab u.a. setTimeout versucht, um die Gif-Animation permanent aufzurufen, damit sie nach Übergabe der Variablen startet %-)
Hat jemand eine Idee. Mein Grafikprogramm (PP8) bietet auch keine Möglichkeit. Kann der Amim. zwar "Interaktivität verpassen, hilft aber nix(?). In selfhtml auch kurz gestöbert. Andere erfolglose Idee war noch document.mover -Problem mit der onClick -Einbindung.
Zumindest schonmal danke für`s lesen.
Maxx Stone
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
Hello again,
im "alert-Befehl" sollte natürlich kein Backslash stehen.
Script ist "natürlich" JavaScript.
Mit php kenn ich mich net aus :-)
Flash möchte ich diesmal nicht einsetzen. Grüble da noch wie ich per "onMouseover" in einem seperaten Bild, bestimmte Flash-Animation starte. Hab ich eigentlich immer solche Probleme? Aber tut ja nicht zur Sache ;-)
Maxx Stone
eine gifanimation unterstützt leider keine interaktivität, sie läst sich also nicht von extern steuern wie z.b. ein eingebetteter mediaplayer.
es gibt aber trotzdem eine möglichkeit mittels dhtml. du kannst eine grafik aus dem gif erstellen, die nicht animiert ist und diese grafik dann dynamsich gegen die animierte austauschen. mit DOM für aktuelle browser sieht das ungefähr so aus:
<img src="nicht_animiert.gif" id="bild" name="bild" border="0" onCLick="start()" />
<script>
function start()
{
document.getElementById("bild").src='animiert.gif';
}
</script>
Hi,
danke xafford, Dein Vorschlag sollte funktionieren. Hab an verschiedenen Stellen meiner Site ähnliches mit "onMouseover"-Aktionen verwendet.
Verstehe aber nicht warum das mit meinem obigen Schema nicht funktioniert:
1. Anzeige eines leeren "Bildes" bzw. Variablendefinition; var Show = ""
2. Austausch des leeren Bildes; Show = "DieSuperDatei.gif"
3. ??
Wenn ich direkt, an Stelle der Gif-Animation, folgendes schreibe:
<script>function HiNicklesForum() {
document.writeln("<img src='DieSuperDatei.gif' width='180' height='350' alt='' \/>")
}
</script>
dann startet die Gif auch beim Funktionsaufruf. Nur leider nicht in meiner (x)html-Datei. Vielleicht kennt jemand meinen Fehler. Ohne den fett dargestellten Teil läuft die Animation andererseits (sofort).
Gruß mit vielen Fragezeichen,
und bis Morgen,
Maxx Stone
âlso warum es mit Start="" und dann Start="blabla.gif" net geht ist klar..du belegst nur eine variable mit einem string, eine grafik ist aber ken string, sondern ein objekt des typs image. zum anderen mußt du dieses objekt auch irgendwo im html-elementbaum plazieren. das führt dazu, warum die andere möglichkeit nicht geht. lässt du die grafik über ein script in die seite schreiben ohne es in eine funktion zu packen,. so wird es an der stelle eingebaut wo das script steht. packst du es in eine funktion und rufst diese aus der fertigen seite auf, wo soll es dann plaziert werden? eben...entweder auf einer komplett neuen seite oder garnicht.
wenn du dynamisch in eine seite schreiben lässt, dann mußt du auch eine stelle referenzieren, z.b. ein div oder layer.
Hi xafford,
..."sondern ein objekt des typs image."
jetzt wird mir manches klarer. Für den Browser ist das noch kein Objekt und das Platzieren (document.writeln(Show)) nützt nichts.
..."aus der fertigen seite auf, wo soll es dann plaziert werden?
Eigentlich rufe ich es an der gewünschten Stelle auf. Es sollte dann über das bild.jpg gelegt werden, deshalb align="right". Aber jetzt verstehe das Problem.
Mal sehen ob ich mit dem div-tag eine glorreiche Methode finde.
Jedenfalls ist der Groschen gefallen.
------
Hoffentlich frägt keiner auf wen :-)
Einmal mehr: Besten Dank xafford.
Gruß Maxx Stone
bitteschön....
noch ein paar sachen, die du dafür benötigen könntest:
p=new Image; //instanziert die varable bild als objekt des typs bild
p.src='pfad/zum/bild.gif'; //weist dem bild die quelle zu
schwieriger wird es mit dem plazieren des bildes, da verschiedene browser da verschiedene modelle unterstützen (opera keines wirklich)...
an der stelle in der das bild stehen soll erzeugst du einen container:
<div id="a" name="a"><layer id="a" name="a"><img src="dummy.gif /></layer></div>
diesen container kannst du dann manipulieren.
nach alter ms-syntax mit:
document.all.a.innerHTML
nach netscape mit:
document.a.document.write
nach DOM-syntax mit:
document.getElementById("a").replaceChild
Hi xafford,
bei wechselnden Bildchen nehme ich immer folgendes Schema:-)
<html><head>
<script type="text/javascript" language="javascript">
if (document.images) {
aOn = new Image
aOff = new Image
bOn = new Image
bOff = new Image
aOn.src = "images/KohlnenntdieSpender.gif"
aOff.src = "images/Fallout.bmp"
bOn.src = "images/StaatsmannBush.jpg"
bOff.src = "images/Fallout2.jpg"
}
function chgImg(imgField,newImg) {
if (document.images) {
document[imgField].src= eval(newImg + ".src")
}
}
// End hiding script from old browsers
-->
</SCRIPT>
</HEAD>
<BODY>
<IMG SRC="images/Fallout.bmp" WIDTH="10000" HEIGHT="20000" ALT="Blut und Dunkelheit" name="Warten" id="Warten" onMouseover="chgImg('Warten','aOn')" onMouseout="chgImg('Warten','aOff')">
<IMG SRC="images/Fallout2.jpg" WIDTH="1" HEIGHT="1" alt="Stirb Du Narr" name="Kriegistimmergleich" id="Kriegistimmergleich" onMouseover="chgImg('Kriegistimmergleich','bOn')" onMouseout="chgImg('Kriegistimmergleich','bOff')">
</body></html>
wie das mit Opera klappert weiß ich leider nicht...
Sicher gibt es bei selfhtml auch noch was Gutes.
Bis denn
Maxx Stone
P.S.: Ich hoffe, ich kann hier noch ein paar Leute mit "Fallout" (a postnuclear role playing game) infizieren)
;-)