Ladebalken TutorialForum » Tutorials » Help » Ladebalken Tutorial
-
21.02.2012 um 12:07 Uhr
Erstmal danke fr das schnelle Tutorial,
also das Tutorial hat perfekt geklappt bei mir, also der Ladebalken luft so wie er laufen soll.
Nur jetzt weis ich nicht wie ich es in mein PHP Script einbaue. Ich versuche es nochmal zu erklren und ich hoffe das es verstndlich rber kommt..

Ich habe ein Browsergame in diesen kann man verschieden Jobs
annehmen die einem nach Ablauf der Zeit Geld und Punkte ein bringen.
Nehmen wir an der Job dauert eine Minute dann wrde der Code so aus sehen:
$timestamp = time(); // Aktuelle Zeit als Timestamp. $dauer = 60; // Dauer des Jobs in sekunden. $bis = $timestamp + $dauer;
Um heraus zu finden wie lange der Job noch dauert kommt dieser Code zum einsatz:
$noch = $bis - $timestamp; // Restzeit vom Job
Die Restzeit lasse ich nun anzeigen. Ich formatiere die
Restzeit in Stunden, Minuten und Sekunden
Ich lasse dann natrlich noch abfragen ob der Job schon fertig ist mit diesem Code:
if($timestamp > $bis) { echo "Job erledigt!"; }
So wenn ich jetzt diesen Ladebalken nutze fr die anzeige wann der Job fertig ist,
fngt der Balken aber immer wieder von vorne an wenn ich die Seite neu lade.
Ich habe gestern nachdem ich das Tutorial gelesen und ausprobiert habe festgestellt das es leider nicht so klappt wie ich es mir vorstelle. Der Balken fngt immer wieder von vorne an. Aber ich mchte halt das er bei 50% weiter geht wen der Job schon zu 50% erfllt ist.
Ich hoffe das es nicht zu viel Arbeit ist und Ich bedanke mich jetzt schon herzlichst fr Antworten und Hilfen bezglich meinem Problems.
-
21.02.2012 um 19:12 Uhr
Du programmierst mal eben schnell ein Brwosergame und ich kleines Lichtlein soll dir da helfen? o.0
Das is mir dann doch ne Nummer zu gross ...
Reicht es nicht aus, wenn du den Aktuellen Stand in dem Balken anzeigst, sofern man die Seite geladen hat? Oder muss das Ding Tatsache in Echtzeit den aktuellen Stand anzeigen?
Denn sonst mach einfach ein DIV, dem gibste ne feste Groesse, da steckst dann - wie im Tutorial auch - ein Weiteres DIV rein, welches eine Breitenangabe in Prozent hat.
Dann etwas simples Prozentrechnen per php und die aktuelle Prozentzahl des Jobs als Breite des DIV's angeben, fertig... Zaehlt halt dann nicht in Echtzeit, sondern gibt nur den aktuellen Stand beim Aufrufen der Seite wieder ...
Was anderes wuesst ich jetzt nicht, ich bin nicht so der Javascript-Freak
... { signatur } ... -
23.02.2012 um 00:02 Uhr
Hi Alice,
na ja mal gerade so ein Browsergame kann man auch nicht sagen
Ich versuche nur ein wenig meine Kenntnisse in PHP, Javascript usw zu verbessern. Hnge schon eine ganze weil an dem Game aber es kann sich glaube ich schon sehen lassen.
Auf die Idee mit dem Prozenten bin ich auch gekommen bin aber gescheitert
da der Balken dann immer von 100% runter zhlt und nicht hoch.
Er zeigt mir die Restzeit in Prozent an und nicht wie weit er ist. Also werden aus 20% --> 80%
Meine Rechnung war so
(hoffe ich blamiere mich jetzt nicht.)
// Restzeit $rest = 1200; // in sekunden 20min. $dauer = 1800; // Dauer des Jobs 30min. $einprozent = $dauer / 100; $prozent = $rest / $einprozent; // in diesem Fall: 66%
Wie schaffe ich es jetzt das er bei 0 anfngt
und hoch zhlt und nicht runter?
Die Seite wo diese Zeiten angezeigt
werden wird mit Ajax jede Sekunde aktualisiert also brauchen wir uns dadrum nicht kmmern.
(falls das wichtig ist)
Aber es ist schon spt... also sage ich mal Gute Nacht.
Und falls es morgens gelesen wird wnsche Ich einen Wunderschnen und erfolgreichen Tag.
Andr
EDIT:
Habe heute morgen die Lsung gefunden.. klappt jetzt wunderbar.
Hier der Code den ich jetzt benutze:
<div style="background-color:#000000; text-align:center; width:150; height:18px" align="right" valign="top"> <div style="text-align:center; background-color:green; width:100%; margin-top:2px; height:18px" valign="top"> <p align="right" style="margin-top:0px"><img src="Bilder/ladebalken.jpg"style="width:'.$prozent.'%; height:18px"></p> </div></div>
Na ja sieht ja nach nichts besonderen aus die Prozentrechnung habe ich ja oben schon eingetragen. Ich habe einfach das Bild was kleiner wird im DIV nach rechts gesetzt uns zack fhrt der balken runter anstatt hoch. Dank Alice fr deine wirklich sehr gute Hilfe.
Der Beitrag wurde insgesamt 2 mal editiert, zuletzt 23.02.2012 um 07:24 Uhr ... -
24.02.2012 um 11:15 Uhr
Freut mich, dass du es hinbekommen hast =)
... { signatur } ... -
24.02.2012 um 19:34 Uhr
Ich habe eine function erstellt die den Balken darstellt.
Ich habe gedacht ich poste diese mal hier, vieleicht hilft die ja jemanden weiter.

Hier die function:
function fortbalken($rest, $dauer) { $einprozent = $dauer / 100; $prozent = round($rest / $einprozent); if($prozent > 98) {$color = "#ff0500"; } if($prozent > 60 and $prozent < 99) {$color = "#ff8f00"; } if($prozent > 40 and $prozent < 61) {$color = "#caff00"; } if($prozent > 0 and $prozent < 41) {$color = "#1fff00"; } $anzeige = ' <div style="width:150px; height:18px" align="right" valign="top"> <div style="background-color:'.$color.'; width:100%; margin-top:2px; height:18px" valign="top"> <p align="right" style="margin-top:0px"><img src="HIER DEIN BILD" style="width:'.$prozent.'%; height:18px"></p> </div></div> '; return $anzeige; }
Der Fortschrittsbalken brauch 2 Informationen um zu
funktionieren einmal die gesamte dauer und die Restzeit.
Wir erstellen eine Variable in der wir
dem Balken die 2 Informationen bergeben:
// Immer in Sekunden angeben. (restzeit = 120, gesamt dauer = 240) $balken = fortbalken(120, 240); // (restzeit, gesamt dauer)
Erst wird ausgerechnet was 1% von der gesamt dauer ist.
Und dann wird die restzeit durch diese 1% geteilt.
Das Ergebniss wird dann in das Bild als width eingetragen und schon klappt es.
Dieser Code muss an die stelle wo der Balken angezeigt werden soll:
echo $balken;
-----
Die div's in der function knnen natrlich angepasst werden.
Hier noch das Bild:
(dort angeben wo steht HIER DEIN BILD)
-----
Ich hoffe ich habe mich verstndlich ausgedrckt...
andre

Neues Thema
Antworten
Zitat 




