Eins nach dem anderen

Quadrat-blabla

Grünschnabel
Hi,
ich kriege es einfach nicht gebacken, dass wenn ich auf einen Button drücke, erst die eine Funktion ausgeführt wird und wenn diese beendet ist, die nächste.
Er führt immer beide parallel aus...

Wie kriege ich das in den Griff

MfG
Simon
 
Eine einfache Möglichkeit wäre die 2. Funktion innerhalb der 1. am Ende aufzurufen,
aber ich denke das wird aus irgendwelchen Gründen nicht gehen,
andernfalls wärst du sicher selbst draufgekommen.

Eine Option wäre der 1. Funktion den Namen der 2. als Paramter zu übergeben.
Also sowas:
PHP:
function machwas ( callback )
{ 
	trace ( "machwas ..."  )
	this[callback].apply ()
}
function machnochwas ()
{
	trace ( "...und noch was" )
}
machwas ( "machnochwas" )
Alternativ könnte man noch die 2. Funktion mit setInterval einfach etwas zeitversetzt ausführen.
PHP:
function machwas ()
{ 
	trace ( "machwas ..."  )
}
function machnochwas ()
{
	clearInterval ( MNW )
	trace ( "...und noch was" )
}
machwas ()
MNW = setInterval ( this, "machnochwas", 600 )
 
Hi,
die erste Variante ist ziemlich genau das, was ich gesucht habe. Die zweite kann ich nicht benutzen, da meine Funktion je nach Parameter unterschiedlich viel Zeit in Anspruch nimmt und die Funktionen ohne Pause nacheinander abgespielt werden sollen.
Jedoch geht die erste Variante nicht mit Parametern

Gruß
Simon
 
Mit einem Parameter geht das so:
PHP:
function machwas ( callback, para )
{
    trace ( "machwas ..."  )
    this[callback].apply ( this,  para )
}
function machnochwas ( para )
{
    trace ( "...und noch was, nämlich --> " + para + " <-- " )
}
machwas ( "machnochwas", ["feierabend"] )

Parameter müssen als Objekt übergeben werden.

Bei mehreren dann in etwa so : ["feierabend", "nach hause gehen"]
Und dann irgendwie mit para[0], bzw para[1] oder so ansprechen.
Hab ich gerade nicht getestet, aber so oder so ähnlich geht das.
 
Hier das ganze nochmal mit mehreren Parametern,
ist schnell hingeschrieben, das geht bestimmt auch ein Stück eleganter, aber funktionieren tut es zumindest schonmal:
PHP:
 function machwas ( callback, para )
{
    trace ( "machwas ..."  )
    this[callback].apply ( this,  para )
}
function machnochwas ( para )
{
	var x = para.length
	while ( x-- )
	{
		  trace ( "...und noch was, nämlich --> " + para[x] + " <-- " )
	}
}
machwas ( "machnochwas", [["nach hause gehen", "feierabend", "computer aus"]])
 
Und das ganze nochmal mit weniger eckigen Klammern:
PHP:
function machwas ( callback, para )
{
    trace ( "machwas ..."  )
    this[callback].apply ( this,  para )
}
function machnochwas ()
{
    var x = arguments.length
    while ( x-- )
    {
          trace ( "...und noch was, nämlich --> " + arguments[x] + " <-- " )
    }
}
machwas ( "machnochwas", ["nach hause gehen", "feierabend", "computer aus"] )
 

Neue Beiträge

Zurück