Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-09-2004, 11:22   #1 (permalink)
Neuer User
 
Benutzerbild von finkenmann
 
Registriert seit: Mar 2002
Ort: Zch
Beiträge: 44
Counter um Stundeneingabe ergänzen

Hallo

vielleicht kann mir jemand helfen. Ich habe aus einem AS-Buch einen Counter übernommen und möchte zwei Kleinigkeiten, was ich aber selber nicht schaffe.

In der Originalfassung beginnt der Counter erst nach Drücken auf einen Button zu laufen, ich wollte aber, dass das Ding gleich beim aufrufen startet. Wenn ich das direkt aus Flash mit der Funktion "film testen" aufrufe, beginnt der Counter schön zu zählen. Binde ich die .swf-Datei aber in ein HTML-Dokument ein funzt des nimmer.

Das zweite was ich gerne ergänzen möchte ist die Möglichkeit, im Enddatum auch noch Stunden und Minuten einzugeben, leider blick ich da im Code nicht ganz durch, wie ich den ergänzen muss. Vielleicht kann mir da jemand weiterhelfen?

Besten Dank
Pierre

Hier erst mal der AS-Code, im Anhang noch die Flash-Datei.
PHP-Code:
/* Ursprüngliche Counterstart mit Button 
_root.start_btn.onRelease = function() {
    aktualisieren();
    setInterval(aktualisieren, 200);
};*/

_root.onLoad = function() {
    
aktualisieren();
    
setInterval(aktualisieren200);
};


function 
aktualisieren() {
    
//Vorbereitung
    
var differenz_num:Number 0;
    var 
aktuell_date:Date = new Date();
    
//String aus dem Eingabefeld in Array konvertieren
    
var datum_array:Array = datum_str.split(".");
    
//Datum mit Werten aus Array füllen
    
var enddatum_date:Date = new Date(Number(datum_array[2]), Number(datum_array[1]) - 1Number(datum_array[0]));
    
//Überprüfung, ob Countdown sinnvoll
    
if (enddatum_date aktuell_date) {
        
//Daten voneinander abziehen
        
differenz_num enddatum_date aktuell_date;
    }
    
//Einzelne Werte herausrechnen:
    
var jahre_num:Number Math.floor(differenz_num 31536000000);
    var 
tage_num:Number Math.floor(differenz_num 86400000) - jahre_num 365;
    var 
stunden_num:Number Math.floor(differenz_num 3600000) - (jahre_num 8760) - (tage_num 24);
    var 
minuten_num:Number Math.floor(differenz_num 60000) - (jahre_num 525600) - (tage_num 1440) - (stunden_num 60);
    var 
sekunden_num:Number Math.floor(differenz_num 1000) - jahre_num 31536000 - (tage_num 86400) - (stunden_num 3600) - (minuten_num 60);

    
//Werte in Textfelder ausgeben
    
jahre_inhalt_str zweistellig(jahre_num);
    
tage_inhalt_str zweistellig(tage_num);
    
stunden_inhalt_str zweistellig(stunden_num);
    
minuten_inhalt_str zweistellig(minuten_num);
    
sekunden_inhalt_str zweistellig(sekunden_num);    
}

function 
zweistellig(wert_num:Number):String {
    var 
wert_str:String wert_num.toString();
    if (
wert_str.length 2) {
        
wert_str "0" wert_str;
    }
    return 
wert_str;

Angehängte Dateien
Dateityp: zip countdown_pierre.fla.zip (8,0 KB, 7x aufgerufen)
finkenmann ist offline   Mit Zitat antworten
Alt 14-09-2004, 11:51   #2 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
das läuft im html auch los, wenn du die aufrufe nicht im _root.onLoad startest sondern direkt.
michael ist offline   Mit Zitat antworten
Alt 14-09-2004, 12:01   #3 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
für das zweite problem müsstest du geringfüge änderungen in der funktion vornehmen:
ActionScript:
  1. //String aus dem Eingabefeld in Array konvertieren
  2.     var uhrzeit_array:Array = datum_str.split (" ")[1].split (":");
  3.     var datum_array:Array = datum_str.split (" ")[0].split (".");
  4.     //Datum mit Werten aus Array füllen
  5.     var enddatum_date:Date = new Date (Number (datum_array[2]), Number (datum_array[1]) - 1, Number (datum_array[0]), Number (uhrzeit_array[0]), Number (uhrzeit_array[1]), Number (uhrzeit_array[2]));

in diesem format würdest du dann das enddatum eingeben:
4.12.2004 12:15:56 (1 leerzeichen zwischen datum u. uhrzeit)
michael ist offline   Mit Zitat antworten
Alt 14-09-2004, 12:10   #4 (permalink)
Neuer User
 
Benutzerbild von finkenmann
 
Registriert seit: Mar 2002
Ort: Zch
Beiträge: 44
Smile

Ganz herzlichen Dank,

Das mit den Minuten hat supi geklappt, aber die Antwort für den automatischen Start hab ich noch nicht gecheckt. Kannste mir erklären, wieso meine Variante nur in der Vorschau, aber nicht im HTML-Dokument klappt und wie ich das umschreiben muss? ... und sorry für die duseligen Fragen, eines Newbies.

Pierre
finkenmann ist offline   Mit Zitat antworten
Alt 14-09-2004, 12:18   #5 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
einfach statt

ActionScript:
  1. _root.onLoad = function() {
  2.     aktualisieren();
  3.     setInterval(aktualisieren, 200);
  4. };
direkt aufrufen:
ActionScript:
  1. aktualisieren();
  2.     setInterval(aktualisieren, 200);
michael ist offline   Mit Zitat antworten
Alt 14-09-2004, 12:28   #6 (permalink)
Neuer User
 
Benutzerbild von finkenmann
 
Registriert seit: Mar 2002
Ort: Zch
Beiträge: 44
Talking

Ohoo, so einfach wars (*peinlich*). Ich frag mich nur, wie lange ich AS lernen muss, bis ich solche Dinge selber rauskrieg.

Besten Dank aus Zürich an die Nordsee.
finkenmann ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele