 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
30.12.2007, 14:18
|
#1
|
|
TP-Junior
Registriert seit: Dec 2007
|
Was hab ich da Falsch gemacht? Eine art random Link Script.
Ich habe folgendes Skript zum Auswählen unterschiedlicher Musiktitel bei einem Linkklick geschrieben so eine art shuffle funktion und es funktioniert nicht richtig.
Kann mir jemand sagen was ich falsch gemacht hab oder was ich ändern muss?
Im HEAD:
Code:
<script language="JavaScript" type="Text/JavaScript">
function choose() {
var number = Math.ceil(Math.random()*11);
if (number == 1) {
var song = 'Lied 1';
var lied = 'Titel von Lied 1';
}
if (number == 2) {
var song = 'Lied 2';
var lied = 'Tiel von Lied 2';
}
if (number == 3) {
var song = 'Lied 3';
var lied = 'Titel von Lied 3';
}
if (number == 4) {
var song = 'Lied 4';
var lied = 'Titel von Lied 4';
}
if (number == 5) {
var song = 'Lied 5';
var lied = 'Titel von Lied 5';
}
if (number == 6) {
var song = 'Lied 6';
var lied = 'Titel von Lied 6';
}
if (number == 7) {
var song = 'Lied 7';
var lied = 'Titel von Lied 7';
}
if (number == 8) {
var song = 'Lied 8';
var lied = 'Titel von Lied 8';
}
if (number == 9) {
var song = 'Lied 9';
var lied = 'Titel von Lied 9';
}
if (number == 10) {
var song = 'Lied 10';
var lied = 'Title von Lied 10';
}
if (number == 11) {
var song = 'Lied 11';
var lied = 'Titel von Lied 11';
}
else {
var song = 'Alternatives Lied';
var lied = 'Alternativer Liedtitel';
}
}
choose();
function changesong() {
if (number == 1) {while (number == 1) {choose();}}
if (number == 2) {while (number == 2) {choose();}}
if (number == 3) {while (number == 3) {choose();}}
if (number == 4) {while (number == 4) {choose();}}
if (number == 5) {while (number == 5) {choose();}}
if (number == 6) {while (number == 6) {choose();}}
if (number == 7) {while (number == 7) {choose();}}
if (number == 8) {while (number == 8) {choose();}}
if (number == 9) {while (number == 9) {choose();}}
if (number == 10) {while (number == 10) {choose();}}
if (number == 11) {while (number == 11) {choose();}}
else {choose();}
window.alert('Nächstes Lied: ' + lied + ' ');
}
</script>
Und dann im BODY:
Code:
<area shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" onmouseover="this.href = 'player.swf?src=http://Musikort/' + song + '.mp3&autostart=yes';" onclick="window.alert('Lade: ' + lied + ' ');changesong();">
Das Skript soll bewirken das bei jedem Linkklick ein anderes Lied geladen wird.
Das seltsame ist wenn ich das obige Script ohne "function" Schreibe wird am anfang ein Lied ausgewählt,
aber ich brauche die Funktion für die Funktion "changesong" und mit onload="choose();" im body hat es auch nicht funktioniert.
Ich verwende übrigens den Firefox.
Geändert von Lukas1234567 (30.12.2007 um 14:30 Uhr).
|
|
|
31.12.2007, 13:02
|
#2
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Es liegt wie ich glaube an der Gültigkeit der variable "number" sie ist nur in der function choosen Gültig. Die function changesong() kennt die Variable nicht.
Folgender Versuch:
Füge in der function choosen am ende "numberWithSong=new Array();"
Und in der function changesong am Anfang "number=choosen();"
Vieleicht solltest du statt den vielen if's switch
einsetzen.
Ps::
Vieleicht sollten die Functionen so ausehen:
Code:
//globale variable ausserhalb der Funktionen, startwert von oldNumber
oldNumber=null;
function choosen()
{
var number = Math.ceil(Math.random()*11);
if(number==0)
{
var song = 'Alternatives Lied';
var lied = 'Alternativer Liedtitel';
}
var song = 'Lied ' + number;
var lied = 'Titel von Lied ' + number;
numberWithSong=new Array(number,lied,song);
return numberWithSong;
}
function changesong()
{
number=choosen();
while (number[0] == oldNumber)
{
number=choose();
}
oldNumber=number[0];
window.alert('Nächstes Lied: ' + number[1] + ' ');
return number;
}
area shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" onmouseover="playSound=changesong;this.href = 'player.swf?src=http://Musikort/' + playSound[2] + '.mp3&autostart=yes';" onclick="window.alert('Lade: ' + playSound[1] + ' ');">
MfG
Klaus harrer
Geändert von klaus_harrer (31.12.2007 um 14:53 Uhr).
|
|
|
01.01.2008, 11:38
|
#3
|
|
TP-Junior
Registriert seit: Dec 2007
|
Danke
Danke für deine Hilfe ich versuch 's gleich mal ich kenn mich halt net so gut in JavaScript aus hab nur von Selfhtml gelernt
Und die Lieder kann ich dann wie früher konfigurieren nur eben mit switch?
Hab das mal gemacht jetzt kommt 'undefined' raus...
Nicht zu vergessen: Ich wünsch dir und allen die diesen Thred lesen ein frohes neues Jahr.
Geändert von Lukas1234567 (01.01.2008 um 12:29 Uhr).
|
|
|
01.01.2008, 12:22
|
#4
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Was genau ist 'undefined'?
Hast du zufällig den Firefox mit 'Fehler-Konsole'?
Habe das Script korrigiert:
Code:
/globale variable ausserhalb der Funktionen, startwert von oldNumber
oldNumber=null;
function choosen()
{
var number = Math.ceil(Math.random()*11);
if(number==0)
{
var song = 'Alternatives Lied';
var lied = 'Alternativer Liedtitel';
}
var song = 'Lied ' + number;
var lied = 'Titel von Lied ' + number;
numberWithSong=new Array(number,lied,song);
return numberWithSong;
}
function changesong()
{
number=choosen();
while (number[0] == oldNumber)
{
number=choose();
}
oldNumber=number[0];
window.alert('Nächstes Lied: ' + number[1] + ' ');
return number;
}
area shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" onmouseover="playSound=changesong();this.href = 'player.swf?src=http://Musikort/' + playSound[2] + '.mp3&autostart=yes';" onclick="playSound=changesong();window.alert('Lade: ' + playSound[1] + ' ');">
MfG
Klaus Harrer
Geändert von klaus_harrer (01.01.2008 um 13:37 Uhr).
|
|
|
01.01.2008, 13:46
|
#5
|
|
TP-Junior
Registriert seit: Dec 2007
|
Fehlerkonsole zeigt nach dem klicken:
Zitat:
|
Zitat von Fehlerkonsole
Fehler: uncaught exception: Die Erlaubnis für den Aufruf der Methode Location.toString wurde verweigert
|
undefinid war aufjedenfall 'song' und 'lied'.
es tut jetzt...
Habe selbst noch ein paar fehler rausgenommen das script sieht jetzt so aus:
Code:
oldNumber=null;
function choosen()
{
var number = Math.ceil(Math.random()*11);
switch (number) {
case 1:
var song = "Dateiname Lied 1";
var lied = "Titel 1";
break;
case 2:
var song = "...";
var lied = "...";
break;
case 3:
var song = "...";
var lied = "...";
break;
case 4:
var song = "...";
var lied = "...";
break;
case 5:
var song = "...";
var lied = "...";
break;
case 6:
var song = "...";
var lied = "...";
break;
case 7:
var song = "...";
var lied = "...";
break;
case 8:
var song = "...";
var lied = "...";
break;
case 9:
var song = "...";
var lied = "...";
break;
case 10:
var song = "...";
var lied = "...";
break;
case 11:
var song = "Deteiname Lied 11";
var lied = "Titel 11";
break;
default:
var song = "Alt. Lied";
var lied = "Titel Alt.Lied";
break;
}
numberWithSong=new Array(number,lied,song);
return numberWithSong;
}
function changesong()
{
number=choosen();
while (number[0] == oldNumber)
{
choosen();
number=choosen();
}
oldNumber=number[0];
return number;
}
und dann im BODY:
Code:
<area id="winamp" shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" title="Winamp" onclick="playSound=changesong();this.href = 'player.swf?src=http://Musikort/' + playSound[2] + '.mp3&autostart=yes';window.alert('Lade: ' + playSound[1] + ' ');playSound=changesong();window.alert('Nächstes Lied: ' + number[1] + ' ');">
EDIT:
Haber einfach das window.alert in onclick verschoben tut jetzt alles wunderbar, DANKE!
Geändert von Lukas1234567 (01.01.2008 um 15:06 Uhr).
|
|
|
01.01.2008, 13:52
|
#6
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Oh, du bist ja noch ein wirklich blutiger Anfänger;
Du selbst hast onmouseover als event zum abspielen des Songs definiert.
Übernehme den Code und die Lieder werden per onclick abgespielt
Code:
f(number==0)
{
var song = 'Alternatives Lied';
var lied = 'Alternativer Liedtitel';
}
var song = 'Lied ' + number;
var lied = 'Titel von Lied ' + number;
numberWithSong=new Array(number,lied,song);
return numberWithSong;
}
function changesong()
{
number=choosen();
while (number[0] == oldNumber)
{
number=choose();
}
oldNumber=number[0];
window.alert('Nächstes Lied: ' + number[1] + ' ');
return number;
}
area shape="rect" coords="178,377,200,396"
href="#" target="play" alt="" onClick="playSound=changesong();this.href = 'player.swf?src=http://Musikort/' + playSound[2] + '.mp3&autostart=yes';window.alert('Lade: ' + playSound[1] + ' ');">
MfG
Klaus harrer
Geändert von klaus_harrer (01.01.2008 um 14:17 Uhr).
|
|
|
01.01.2008, 14:26
|
#7
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Zitat:
|
Habe selbst noch ein paar fehler rausgenommen das script sieht jetzt so aus:
|
Der Code von dir ist Fehlerhaft und funktioniert nur zufällig
Das ist lächerlich!!!
MfG
Klaus Harrer
Geändert von klaus_harrer (01.01.2008 um 14:33 Uhr).
|
|
|
01.01.2008, 14:40
|
#8
|
|
TP-Junior
Registriert seit: Dec 2007
|
Zitat:
|
Zitat von klaus_harrer
Du selbst hast onmouseover als event zum abspielen des Songs definiert.
|
Nein das hast du vermutlich so gemacht,denn in meinem anfangsscript wurde nur die Linkadresse verändert, so das die Musik beim Klicken abgespielt wird
Das kommt von dir:
Zitat:
|
Zitat von klaus_harrer
Code:
onmouseover="playSound=changesong;this.href = 'player.swf?src=http://Musikort/' + playSound[2] + '.mp3&autostart=yes';"
|
Zitat:
|
Zitat von klaus_harrer
Code:
number=choose();function changesong()
{
number=choosen();
while (number[0] == oldNumber)
{
number=choose();
}
oldNumber=number[0];
window.alert('Nächstes Lied: ' + number[1] + ' ');
return number;
}
|
die funktion choose(); gibt es nichtmehr es gibt nur noch choosen();
Ich habe es die ganze Zeit getestet, du nicht.
Zitat:
|
Zitat von klaus_harrer
Das ist lächerlich!!!
|
Und was hast du so im Alter von 13 Jahren bzgl. Javascript so zustande gebracht????
Geändert von Lukas1234567 (01.01.2008 um 15:03 Uhr).
|
|
|
01.01.2008, 15:47
|
#9
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Als ich Dreizehn war gab es noch kein Javascript.
Das Script ist so nicht in Ordnung und sollte korrigiert werden.
Du solltest genau erklären was du möchetest b.z.w nicht einfach irgendeine Funktion einfach umbenennen.
MfG
Klaus harrer
|
|
|
01.01.2008, 15:49
|
#10
|
|
TP-Junior
Registriert seit: Dec 2007
|
Was bei mir momentan noch nicht tut ist das mit dem Wechseln. Er wechselt immer auf ein anderes als auf das davor angezeigt wurde.
Du hast doch untn geschieben die Funktion choose(); soll choosen(); heißen wegen number
So... jetzt tuts richtig.
Code:
var zahl = Math.ceil(Math.random()*12);
var alt = zahl;
var song = 'Alt. Lied';
var lied = 'Scriptfehler es wird Alt. Lied abgespielt.';
function choose() {
while (zahl == alt) {
var zahl = Math.ceil(Math.random()*12);
switch (zahl) {
case 1:
song = "Lied 1";
lied = "Titel von Lied 1";
break;
case 2:
song = "...";
lied = "...";
break;
case 3:
song = "...";
lied = "...";
break;
case 4:
song = "...";
lied = "..."
break;
case 5:
song = "...";
lied = "...";
break;
case 6:
song = "...";
lied = "...";
break;
case 7:
song = "...";
lied = "...";
break;
case 8:
song = "...";
lied = "...";
break;
case 9:
song = "...";
lied = "...";
break;
case 10:
song = "...";
lied = "...";
break;
case 11:
song = "...";
lied = "...";
break;
case 12:
song = "Lied 12";
lied = "Titel von Lied 12
break;
default:
song = "Alt.Lied";
lied = "Titel von Alt.Lied";
break;
}
}
var alt = zahl;
}
choose();
Code:
<area name="winamp" shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" title="Winamp" onclick="this.href = 'player.swf?src=http://Musikort/' + song + '.mp3&autostart=yes';window.alert('Lade: ' + lied + ' ');choose();window.alert('Nächstes Lied: ' + lied + ' ');">
Geändert von Lukas1234567 (01.01.2008 um 16:29 Uhr).
|
|
|
01.01.2008, 17:03
|
#11
|
|
TP-Junior
Registriert seit: Mar 2006
Ort: Berlin
|
Hallo
Erkläre bitte genau was dieses Script machen soll.
Was soll die Funktion choosen() machen?
Was soll "<area name="winamp" shape="rect" coords="178,377,200,396". . ." auslösen?
MfG
Klaus Harrer
|
|
|
01.01.2008, 17:16
|
#12
|
|
TP-Junior
Registriert seit: Dec 2007
|
Am anfang wird definiert:
zahl soll eine zahl zwischen 0 und 1 sein, die aufgerundet wird und dann mal 12 genommen.
alt soll = zahl sein
und song soll Alt. lied sein
und lied soll den Scriptfehler aussprechen beinhaltend den titel vom Alt. Lied.
die funktion choose() soll solange zahl = alt eine zahl zwischen 0 und 1 generieren, aufrunden und dann mal 12 nehmen.
Wenn Zahl = 1 dann soll song = Irgendwas und lied = Irgendwas usw bis 12
wenn die zahl nicht zwischen 1 und 12 liegt, dann soll song = Irgendwas anderes und lied = Irgenwas anderes.
Danach soll alt = zahl sein
und anschliesend soll die function ausgeführt werden.
Dann soll bei:
Code:
<area name="winamp" shape="rect" coords="178,377,200,396"
href="javascript:window.alert('Sorry, Scriptfehler');" target="play" alt="" title="Winamp" onclick="this.href = 'player.swf?src=http://Musikort/' + song + '.mp3&autostart=yes';window.alert('Lade: ' + lied + ' ');choose();window.alert('Nächstes Lied: ' + lied + ' ');">
Beim klicken soll der link zu player.swf?src=http://Musikort/ mit der einfügung von song .mp3&autostart=yes sein.
und anschließen als alert den Liedtitel (lied) ausgeben die function choose(); ausführen und erneut den Liedtitel ausgeben. 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:54 Uhr.
|
 |