• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

einen sound einbinden, HILFE

AdamS

New member
Hi guys,

ich hätt da mal als absoluter js noob eine kleine Frage.

und zwar möchte ich gerne diese Funktion:

{ window.focus()
alert("nicht immer auf´n Kopf klicken") }

durch einen sound ersetzen.

Also sprich, diesen auftauchenden Dialog "nicht immer auf´n Kopf klicken" durch einen einfachen sound ersetzen.

Ist wahrscheinlich ne absolute kleinigkeit für euch ;)
Danke im vorraus
 
function loeschen(wen,wo)
{knoten=document.getElementById(wen);
weg=document.getElementById(wo).removeChild(knoten);}

function play_sound(was)
{
knoten=document.createElement('<embed id="'+identity+'" src="'+was+'" hidden="true" autostart="true">');
document.getElementById('body').appendChild(knoten);
window.setTimeout('loeschen('+identity+',"body")',5000);
identity++;
}

window.focus()
play_sound('kopf.wav');


Das habe ich mal für ein Online-Spiel verwendet und funktionierte so besser als alle anderen Befehle.
Vielleicht kennt jemand was besseres, dieses Script geht nur im IE5+, wobei man es leicht an den NS6+ anpassen könnte.
 
hmm, scheint irgendwie nicht zu funktionieren.
Ich stelle mich wahrscheinlich zu dumm an das richtig einzubinden.

Ich Poste mal den original quelltext. Das ist eine Grafik die der Maus folgt von www.javapool.de ursprünglich hieß das alien.

var Ver4=parseInt(navigator.appVersion.charAt(0))>=4
var IE=navigator.appName.indexOf("Microsoft")!=-1
var al, imagesrc, ex=-64, ey=-64, x0=-64, y0=-64

function Bewegescout()
{ // Neue Position des scout berechnen
if (Math.abs(ex-x0)>=10) { x0+=Math.floor((ex-x0)*0.1) }
else if (ex!=x0) { x0+=Math.abs(ex-x0)/(ex-x0) }
if (Math.abs(ey-y0)>=10) { y0+=Math.floor((ey-y0)*0.1) }
else if (ey!=y0) { y0+=Math.abs(ey-y0)/(ey-y0) }

// entsprechende Grafik in Bezug zur Maus-Position waehlen
imagesrc=""
if ( (ex<x0) && ( (x0-ex) > Math.abs(y0-ey)/2 ) )
{ imagesrc="scout_l.gif"
if ( (x0-ex) < Math.abs(y0-ey)*2 )
{ if (ey<y0) imagesrc="scout_lo.gif"
if (ey>y0) imagesrc="scout_lu.gif"
}
}
if ( (ex>x0) && ( (ex-x0) > Math.abs(y0-ey)/2) )
{ imagesrc="scout_r.gif"
if ( (ex-x0) < Math.abs(y0-ey)*2 )
{ if (ey<y0) imagesrc="scout_ro.gif"
if (ey>y0) imagesrc="scout_ru.gif"
}
}
if (imagesrc=="")
{ if (ey<y0) imagesrc="scout_o.gif"
if (ey>y0) imagesrc="scout_u.gif"
if ((ex==x0)&&(ey==y0)) imagesrc="scout.gif"
}

// Grafik und Position setzen
if (Ver4)
{ if (!IE)
{ document.scoutLayer.document.images.scout.src=imagesrc }
else document.all.scoutLayer.document.images.scout.src=imagesrc
}
al.left=x0-64
al.top=y0

setTimeout("Bewegescout();",100)
}

function MeinMausEvent(e)
{ // Position des Maus-Cursors ermitteln
if (Ver4)
{ if (!IE)
{ ex=e.pageX
ey=e.pageY }
else
{ ex=event.clientX + document.body.scrollLeft
ey=event.clientY + document.body.scrollTop }
}
}

function ScriptSetup()
{ // Alle scout-Grafiken laden
isIm = (document.images) ? 1 : 0
if (isIm)
{ arImLoad = new Array
('scout','scout_u','scout_o','scout_l','scout_r',
'scout_lu','scout_lo','scout_ru','scout_ro')
arImList = new Array ()
for (counter in arImLoad)
{ arImList[counter] = new Image()
arImList[counter].src = arImLoad[counter] + '.gif'
}
}

// Globale Variablen setzen und Maus-Event initialisieren
if (Ver4)
{ if (!IE)
{ al=document.scoutLayer
document.captureEvents(Event.MOUSEMOVE)
}
else
{ al=document.all.scoutLayer.style }
document.onmousemove = MeinMausEvent
Bewegescout()
}
}

function Copyright()
{ window.focus()
alert("nicht immer auf´n Kopf klicken") }

function Zeigescout()
{ // Setzen der Block-Level Container zur Anzeige der Grafiken
if(Ver4)
{ s ='<DIV STYLE="visibility:hidden"></DIV>'
s+='<DIV ID="scoutLayer" STYLE="position:absolute; '
s+='top:-64; left:-64; width:64; height:64">'
s+='<A HREF="javascript:Copyright();">'
s+='<IMG NAME="scout" SRC="scout.gif" border=0>'
s+='</A></DIV>'
document.writeln(s)
}
}

window.onload = ScriptSetup
Zeigescout()
 
Ah ja, kleiner Fehler bei der dynamischen Zuweisung einer ID.
Ich poste mal meine Allround-Funktion zum erstellen von dynamischen IDs und korrigiere den Rest der Funktionen:

function get_id()
{zufall='';
do {while(zufall.length<=5)
{do {zahl=zufallsgenerator(79);}
while(zahl<41||zahl==60)
zufall+=unescape('%'+zahl);
}}
while(document.getElementById(zufall))
return zufall;
}

function loeschen(wen,wo)
{knoten=document.getElementById(wen);
weg=document.getElementById(wo).removeChild(knoten);}

function play_sound(was)
{identity=get_id();
knoten=document.createElement('<embed id="'+identity+'" src="'+was+'" hidden="true" autostart="true">');
document.getElementById('body').appendChild(knoten);
window.setTimeout('loeschen('+identity+',"body")',5000);
}
 
Ich hab den richtigen Dreh immer noch nicht raus. Der neue Tipp funzt auch net.

Also cih habe da jetzt:

.......

}

function Copyright()
{ window.focus()
alert("nicht immer auf´n Kopf klicken") }

function Zeigescout()

.......

stehen.

Und was soll ich wo einfügen und was soll ich in was umbenennen?
 
Das obenstehende unverändert einfügen und die Funktion so aufrufen:
play_sound(Pfad des Sounds);

"Funzt net" ist immer sehr hilfreich!
Die Fehlermeldung würde schon weiterhelfen.
 
Ich werds weiterversuchen.

Mit der Fehlermeldung bin ich ganz deiner Meinung. Hier ist die fehlermeldung:

Fehler auf der Seite.

(erscheint in der Statusleiste)...
Ist aber nicht gerade sehr Hilfreich
 
Wie wäre es, unter Extra-Internetoptionen in der Karteikarte "Erweitert" unter der Rubrik "Browsing" "Scriptfehler anzeigen" zu aktivieren und "Scriptdebugging deaktivieren" zu deaktivieren?
 
Aja, schäm, vor sovieler Professionalität.

Also jetzt erhalte ich die Fehlermeldung:
'kopf' ist undefiniert


eine kopf.wav Datei existiert aber im gleichem verzeichniss
 
so schauts gerade bei mir aus:

...

function play_sound(was)
{identity=get_id();
knoten=document.createElement('<embed id="'+identity+'" src="'+was+'" hidden="true" autostart="true">');
document.getElementById('body').appendChild(knoten);
window.setTimeout('loeschen('+identity+',"body")',5000);
}

function Copyright()
{ window.focus()
play_sound(kopf.wav); }

...

wenn ich play_sound('kopf.wav'); }

schreibe steht da Objekt erwartet

jetzt muss ich erstmal los, komme so in ner halben std wieder
 
Es sollte noch eine Zeile und Spalte angegeben werden, wo der Fehler auftritt.
Such die Zeile raus, und sage mir dann, was in diese Zeile steht.
 
Also, Zeile 110 Spalte 3

das ist genau:

...

window.setTimeout('loeschen('+identity+',"body")',5000);
}

function Copyright()
{ window.focus()
play_sound(kopf.wav); }
<<<XXXXXXXXX>>> <<<<<<<<<Hier!!!
function Zeigescout()

...

und dort ist nix, fehlt evtl. irgendwo ein } ?
 
Tja, ich habe noch eine andere Funktion vergessen.
Als erstes musst du noch diese Funktion einfügen:

function zufallsgenerator(range)
{var randomnumber = Math.random() ;
var zufall = Math.round( (range-1) * randomnumber) + 1 ;
return zufall;}

Dann musst du in den "body"-Tag der HTML Datei noch 'id="body"' eintragen.
Dann geht's.
Damit die Sounds schon vorher geladen werden, solltest du noch folgendes HTML einfügen:
<embed id="idli" src="kopf.wav" hidden="true" autostart="false">'
eintragen.

So, jetzt klappt's und ich kann endlich essen. ;)
 
Ich fasse es nicht, es will einfach nicht gehen.

Alle Tags eingefügt und es ist immer noch das selbe: 'kopf' ist undefiniert.

Der Fehler hat sich nun auf die Zeile 115 Spalte 3 verschoben (durch das einfügen der neuen Funktion ist alles verrutscht)

Ich habe mir das ganze eigentlich ganz anders vorgestellt. Als HTML Pionier dachte ich das sowas einfaches wie sound="musik.wav" ausreichen würde.

Aber da kommen lauter funktionen zum einsatz! Jetzt wundere ich mich überhaupt nicht das ich die java sprache nicht kapiert habe. Ich will doch nur ein sound durch eine Meldung ersetzen und dazu muß ich einen ganzen Aufsatz an funktionen einbinden???

*heul* *heul* *heul* *heul* *heul* *heul*

Kannst Du mir nicht einfach die runtergeladnene Datei richtigstellen und Sie mir dann per E-mail zuschicken?
 
Zurück
Oben