Webdesign in Siegen

Countdown

Fragen zum Thema Flash können hier gestellt werden

Countdown

Beitragvon .wired am 13.01.2008, 00:43

Hi, erstmal vorab, ich habe absolut keine Ahnung von Flash und habe auch nicht vor, mir eine solche in der nächsten Zeit anzuschaffen, weil ich es wohl nur einmal benutzen werde und nie wieder. Was ich bräuchte, wäre ein Flash-Countdown mit Zahlen, möglichst auch so, dass Milisekunden abgespielt werden. Dass es also so aussieht:

d |h|min|s|ms
123:45:67:89:00

Ich habe zwar bei Google durchaus Tutorials gefunden, aber ich habe rein garnichts verstanden, deswegen wende ich mich nun an euch, ob ihr mir helfen könntet. Das Script sollte von jeder Zeitzone dasselbe Ergebnis liefern, und es wäre genial, wenn es beim Ablauf zu einem Link weiterleiten würde. Versteht mich bitte nicht falsch, ich verlange nicht von euch, dass ihr mir solch ein Script einfach schreibt (wobei ich aber nichts dagegen hätte :duckweg: ), eher ein verständliches "Noob"-freundliches Tutorial zeigen oder schreiben könntet.

Vielen Dank im Voraus
.wired

PS.: Ja mir ist klar, dass mein Beispiel völliger Schwachsinn ist :duckweg: :mrgreen:
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen

Re: Countdown

Beitragvon sadcrow am 13.01.2008, 01:19

ich empfehle dir eher ein javascript, als das ganze mit flash zu lösen.

Code: Alles auswählen
<form name="datum">
<input readonly="readonly" size="40" name="DD">
</form>
<script language="javascript" type="text/javascript">
/* Hier das genaue Ende des Countdown angeben */
var Endjahr = 2010;  // Jahr   (2004-ue.)
var Endmonat = 5;    // Monat  (1-12)
var Endtag = 15;     // Tag    (1-31)
var Endstunde = 18;  // Stunde (0-23)
var Endminute = 8;   // Minute (0-59)
var Endsekunde = 50; // Sekunde(0-59)
var ENDE="Beendet";  //Anzeige, wenn countdown beendet ist (unbedingt in anführungszeichen)

var rechnen=0;
var Jahr=31536000000;
var Monat=Jahr/12;
var Tag=Jahr/365;
var Stunden=Tag/24;
var Minuten=Stunden/60;
var Sekunden=Minuten/60;
var Jahr1;
var Monat1;
var Tag1;
var Stunden1;
var Minuten1;
var Sekunden1;
var i;
var NIX=new Array();
var Anfang=new Date();
var Ende=new Date();

Ende.setYear(Endjahr)
Ende.setMonth(Endmonat)
Ende.setDate(Endtag)
Ende.setHours(Endstunde)
Ende.setMinutes(Endminute)
Ende.setSeconds(Endsekunde)

function countdown()
{
   NIX[0]=0;
   NIX[1]=0;
   NIX[2]=0;

   var Anfang=new Date();
   Anfang.getYear();
   Anfang.getMonth();
   Anfang.getDate();
   Anfang.getHours();
   Anfang.getMinutes();
   Anfang.getSeconds();
   rechnen=Ende-Anfang;

   if(!(rechnen<=0))
   {
      if(rechnen<32000)
      {
         i=parseInt(rechnen/1000);
         i<10?NIX[3]='0':NIX[3]='';
         document.datum.DD.value='00:00:'+NIX[3]+i;
      } else {
         Jahr1=parseInt(rechnen/Jahr);
         rechnen=rechnen-Jahr1*Jahr;
         Monat1=parseInt(rechnen/Monat);
         rechnen=rechnen-Monat1*Monat;
         Tag1=parseInt(rechnen/Tag);
         rechnen=rechnen-Tag1*Tag;
         Stunden1=parseInt(rechnen/Stunden);
         rechnen=rechnen-Stunden1*Stunden;
         Minuten1=parseInt(rechnen/Minuten);
         rechnen=rechnen-Minuten1*Minuten;
         Sekunden1=parseInt(rechnen/Sekunden);
         Jahr1==0?Jahr1='':Jahr1='Jahre:'+ Jahr1+' ';
         Monat1==0?Monat1='':Monat1='Monate:'+ Monat1+' ';
         Tag1==0?Tag1='':Tag1='Tage:'+ Tag1+' ';

         Stunden1>9?NIX[0]='':NIX[0]=0;
         Minuten1>9?NIX[1]='':NIX[1]=0;
         Sekunden1>9?NIX[2]='':NIX[2]=0;

         if (Ende-Anfang < 0) {
            document.datum.DD.value=ENDE;
         } else {
            document.datum.DD.value = Jahr1 + '' + Monat1 + '' + Tag1 + '' + NIX[0] + '' + Stunden1 + ':' + NIX[1] + '' + Minuten1 + ':' + NIX[2] + '' + Sekunden1;
         }
      }
   } else {
      clearInterval(ID);
      document.datum.DD.value=ENDE;
   }
}
var ID=setInterval('countdown()',1);
</script>


hier siehst du die demo: http://markusbalbi.ch/countdown.html

ist sehr simpel anzupassen.


oder hier findest du ein interessantes: http://www.jswelt.de/index.php?opencat= ... 1006094387
Benutzeravatar
sadcrow
Mitglied
 
Beiträge: 870
Registriert: 08.01.2008, 01:23
Wohnort: Winterthur Schweiz

Re: Countdown

Beitragvon .wired am 13.01.2008, 02:01

Danke sehr für deinen Vorschlag, allerdings habe ich mich fest dazu entschlossen, Flash zu benutzen. Ich habe grade irgendso ein Tutorial nachgebaut, von dieser Seite: http://www.oman3d.com/tutorials/flash/v ... ntdown.php. Aber irgendwie will er das Script, nachdem ich es geschrieben habe, nicht ausführen, ich weiß nicht so recht wie ich es starte :mrgreen: . Außerdem ist es soweit ich es verstanden habe nicht in jeder Zeitzone gleich und hat die Milisekundenanzeige nicht, und da ich nur stupide den Source abgeschrieben habe, weiß ich nicht, wie ich noch die Milisekunden reinbauen kann... Außerdem fehlr die Weiterleitung :mrgreen: . Naja, ich geh mal schlafen, ist schon spät, dann hab ich wenigstens was, worauf ich mich morgen *aufe Uhr schau und korrigier:* heute freuen kann ;)

MfG .wired
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen

Re: Countdown

Beitragvon Ingo am 14.01.2008, 03:21

Hi ho.

Ich hab diesen Thread mal zum Anlass genommen, mich ein bisschen in ActionScript
'reinzuwühlen. Nicht dass ich Adobe Flash hätte; das macht die Sache hier immerhin
interessanter *g*.
Ausgehend von dem genannten Tutorial habe ich mich mit einem Editor (SciTE) und
einem freien Compiler (MTASC) ans Werk gemacht - mit folgendem Ergebnis
(Flash-Profis: bitte Nachsicht - das ist mein Erstlingswerk in dieser Sprache :lol: ):

Code: Alles auswählen
//countdown-script

// der dynamische Text mit der Zeitanzeige heißt time_txt
class Countdown
{
   static var app : Countdown;
   
   function Countdown()
   {
      _root.createTextField("time_txt",0,0,0,200,50);
      
      // Textformat anpassen
      var my_fmt:TextFormat = new TextFormat();
      my_fmt.bold = true;
      my_fmt.align = "right";
      my_fmt.size = 20;      // pt ??
      my_fmt.font = "Arial";
      my_fmt.color = 0xFF9900;
      
      // und Format setzen
      _root.time_txt.setNewTextFormat(my_fmt);
      
      //
      _root.onEnterFrame = setText;
   } 
   
     function setText()
   {
         var today:Date = new Date();
         var currentYear = today.getUTCFullYear();            // UTC-Version
         var currentTime = today.getTime();                  // Zeitangabe in Millisekunden, UTC

         var targetDate:Date = new Date(currentYear,11,24,2,33);   // HIER ANPASSEN ; Rest = 0
         var targetTime = targetDate.getTime();         // Zeitangabe in Millisekunden, UTC
         
         var timeLeft = targetTime - currentTime;         // Differenz in Millisekunden
      
         if(timeLeft <= 0)
         {  getURL("http://www.macromedia.com/software/flash/flashpro/", "_blank");
               _root.onEnterFrame = function () {};
               timeLeft =0;           // für sauberes Schlussbild ;o)
         };
      
         var sec  = Math.floor(timeLeft/1000);
         var min  = Math.floor(sec/60);
         var hrs  = Math.floor(min/60);
         var days = Math.floor(hrs/24);
         
         sec = string(sec % 60);
         if(sec.length<2)   { sec = "0" + sec;  }   
         
         min = string(min % 60);
         if(min.length<2)   { min = "0" + min;  }   
         
         hrs = string(hrs % 24);
         if(hrs.length<2)   { hrs = "0" + hrs;  }   
         
         days = string(days);

         // Erweiterung um Millisekunden
         var mis = 999 - today.getUTCMilliseconds();      //  0...999
         
         // in String wandeln
         mis = string(mis);
         
         // String auf Länge 3 bringen   
         if(mis.length==2) { mis = "0" + mis; }
         else if(mis.length==1) { mis = "00" + mis; };
         
         // String zusammenbauen
         var counter:String = days + ":" + hrs   + ":" + min + ":" + sec + ":" + mis;
         // und setzen
         _root.time_txt.text = counter;
   }

   static function main(mc)
   {
      app = new Countdown();
   }
   
}   // class

// D:\PROGRG\mtasc\mtasc -swf countdown.swf -main -header 300:60:20 countdown.as


Diesen Quelltext packt man in eine Datei namens countdown.as und ruft MTASC:
mtasc -swf countdown.swf -main -header 300:60:20 countdown.as
wobei 300:60:20 beudeutet: 300 x 60 Pixel, 20 Frames/Sekunde.
Das erzeugt eine swf-Datei der schier unfassbaren Größe von 780+/- Bytes ;o)

Der Counter basiert auf der Weltzeit (UTC) und umfaßt Millisekunden; bei Ablauf
wird eine Url gerufen (derzeit Macromedia). Wenn du Lust hast, passe den Quelltext
an deine Bedürfnisse an, Infos zu ActionScript (Syntax, Funktionen etc.) gibt's
bei livedocs.adobe.com.
Als Vorgeschmack hab ich eine fertige swf angehängt (gezippt - nicht der Größe wegen).

Gut'Nacht, Ingo

Edit: Fehler im Skript beseitigt und Anhang ausgetauscht
Dateianhänge
countdown_neu.zip
(1.94 KiB) 13-mal heruntergeladen
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 438
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Countdown

Beitragvon .wired am 14.01.2008, 18:46

Vielen Dank für deine Mühe, ich werde gleich einmal versuchen, mich damit auseinanderzusetzen. Übrigens, Adobe Flash kann man kostenlos runterladen und testen (sogar dir CS3 Version) und für mich reichen die 30 Tage mehr als aus ;) Hier mal der Link, wenn es dich interessieren sollte: http://www.adobe.com/products/flash/ Übrigens, mal eine PR10-Seite ;) Und wenns etwas unprofessioneller sein darf, gibt es auch andere Trials ;)

MfG
.wired
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen

Re: Countdown

Beitragvon .wired am 22.01.2008, 22:44

Ich bedanke mich noch einmal ganz herzlich bei dir für deine Mühe. Wenn du nichts dagegen hast, würde ich dich gerne namentlich in Verbindung mit dem Flashscript erwähnen,wenn du mir einfach eine PM mit deinem Namen schreiben könntest ;), schließlich kann ich die Arbeit anderer ja nicht für die meine verbuchen. Wenn du aber nirgendwo namentlich erwähnt werden willst, lasse ich es einfach :lol: :duckweg: .

Ich hätte dann aber noch eine Frage allgemein :D Gibt es auch noch eine Möglichkeit, nach Ablauf aller Tage folgendes Ergebnis anzuzeigen?

h|min|sec
24:16:05

Also halt, dass die Tage völlig ausgeblendet sind und mit ihnen auch der Doppelpunkt. Ich würde es ansonsten selber nochmal mit folgender Abfrage versuchen, aber ich weiß nicht, ob das Flashscript dann neugeladen wird, und das will ich ja nicht:

if (weniger/gleich 24 Stunden übrig sind)
{Zeige h + ":" + min + ":" + sec; an}

MfG .wired

PS.: Seht ihr alle diese Digitaluhr-Schrift? Ich weiß nämlich nicht, ob jeder das Ergebnis angezeigt bekommt, was ich habe, denn ich bezweifel, dass jeder diese Schrift hat...

<edit> Nein, das Ergebnis, was ich habe, hat auch nur derjenige, der die Schrift installiert hat :( Übrigens zu begutachten unter http://www.countdown.masterplane.de/ ... Wie kann ich es machen, dass ich trotzdem diese Schrift benutze und jeder das selbe Ergebnis hat? </edit>
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen

Re: Countdown

Beitragvon Ingo am 23.01.2008, 20:07

Hi.
Freut mich dass es deinen Zuspruch findet ;o). Die Sache mit dem Ausblenden der Tag-Angabe
ist leicht zu machen, dein Ansatz war da schon nah dran; wie wär's mit folgendem:
Code: Alles auswählen
...
// String zusammenbauen
  var counter:String = "";
         
  if(days != "0") { counter = days + ":"; };
         
  counter += hrs + ":" + min + ":" + sec + ":" + mis;
         
// und setzen ...

Was den Font angeht: hmpf, das kann ich so aus dem Stand heraus nicht einbauen; das Stichwort ist
"Einbettung" (embed) eines Fonts. Ich seh mich mal um, vllt. finde ich einen Weg, das allein mit
ActionScript oder sonstwie 'reinzubasteln.

Soweit erstmal, Ingo :)
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 438
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Countdown

Beitragvon .wired am 24.01.2008, 22:48

Du bist namentlich erwähnt ;) Wenn ich dich mit dem Namen auch irgendwo verlinken kann, mach ich das auch gerne ;). Übrigens bin ich heute auf folgendes gestoßen: http://kultpower.wordpress.com/2007/12/ ... einbinden/
Das Problem ist, das bei mir immer irgendein Compile Error kommt, egal wie ich diese Scripterweiterung umschreibe... Ich bin einfach nicht für Flash geschaffen :( . Ähm, also nicht dass ich irgendwie zu dumm bin, das selber zu machen (wobei ichs doch bin), könntet/st du/ihr mir hier noch einmal helfen? *lieb guck* ^^

MfG .wired
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen

Re: Countdown

Beitragvon Ingo am 27.01.2008, 22:22

Hi.
Scheint nicht so einfach zu sein, einen Font per swfmill/mtasc einzubinden.
Ich hab eine ganze Reihe von Anläufen gestartet - Ergebnis: der Font landet
zwar in der swf-Datei, ich habe aber keinen Zugriff auf den Font. Hmpf. :o0:

Ich hab mir also dann doch 'mal Flash CS3 beschafft, längs dem oben erwähnten
Tutorial den Countdown erst nachgebaut, dann noch die Änderungen für die
Millisekunden und den Link-Aufruf eingebaut. Das scheint soweit alles glatt
gegangen zu sein. Damit die IDE die kharon-Schriftart einbetten kann, hab ich
sie vorübergehend auf meinem System installiert.

Anbei nun die fla-Datei und eine swf. Du müsstest die fla in Flash öffnen können,
um z.B. dort Änderungen etc. vorzunehmen. - 30 Testtage hab ich noch; wenn ich
also noch was tun kann: nicht zu lange warten :wink:

Gruß, Ingo :)
Dateianhänge
Countdown333.zip
(9.24 KiB) 11-mal heruntergeladen
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 438
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Countdown

Beitragvon .wired am 27.01.2008, 23:06

Ich weiß gar nicht, was ich dazu sagen soll... Eine Bedankung ist einfach zu wenig. Wenn ich dir irgendwann mal etwas Gutes tun kann, sag Bescheid, ich werd mein bestmögliches geben ! Vielen Dank, wirklich !!!

MfG .wired
Bild Bild
Benutzeravatar
.wired
Mitglied
 
Beiträge: 316
Registriert: 24.06.2007, 20:36
Wohnort: Diekholzen


Zurück zu Flash

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast