Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-06-2004, 10:25   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: Stuttgart
Beiträge: 25
Question Countdown (Kreisbewegung/Füllung)

Hallo,
ich hoffe mir kann jemand weiterhelfen.
Folgendes Problem:

Ich möchte ein Countdown aufbauen.
Dieser soll grafisch in Form einer Uhr abwärtszählen.
Dabei sieht man nur zwei farbliche Flächen. Die eine Fläche wird immer grösser und stellt sozusagen den Sekundenzeiger dar.
War das jetzt verständlich?

Dieses Script hab ich in der AS-Referenz gefunden:

ActionScript:
  1. _root.createEmptyMovieClip( "circle", 1 );
  2. with ( _root.circle )
  3. {
  4.     lineStyle( 0, 0x0000FF, 100 );
  5.     beginFill( 0xFF0000 );
  6.     moveTo( 500, 500 );
  7.     curveTo( 600, 500, 600, 400 );
  8.     curveTo( 600, 300, 500, 300 );
  9.     curveTo( 400, 300, 400, 400 );
  10.     curveTo( 400, 500, 500, 500 );
  11.     endFill();
  12. }


Eine Hilfe wie der Kreis sich aufbaut, würde mir glaub ich schon reichen!

Ein Countdown der abwärts zählt (mit Zahlen) hab ich schon.



richyt ist offline   Mit Zitat antworten
Alt 01-06-2004, 10:45   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
scripten ist hier glaub ich schwieriger als zu tweenen! würde die ani von hand machen und in einen mc stecken... diesen kannste ja mit gotoAndStop(countdown); ansteuern... also einfach ne function schreiben die die werte des countdowns auf deinen mc überträgt!

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 01-06-2004, 10:55   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: Stuttgart
Beiträge: 25
Danke für die Hilfe.
Aber das bringt mich nicht so richtig weiter.

Wenn jetzt zum Beispiel noch 45 Sekunden übrig habe, dann muss der Kreis 1/4-gefüllt sein und mit jeder Sekunde immer voller werden.
Bei ausbleibenden 15 Sekunden ist der Kreis zu 3/4-voll.

Wie bekomm ich das hin?
richyt ist offline   Mit Zitat antworten
Alt 01-06-2004, 13:56   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: Stuttgart
Beiträge: 25
Ich hab jetzt die Kreisbewegung als Tweening in einem MC.
Wie sieht die Funktion aus, die die Werte des countdowns auf meinen mc überträgt?

Die Kreisbewegung soll jeweils nur einmal durchlaufen.
bei 40 sec wird der Kreis natürlich langsamer voll, als bei 20 sec.
richyt ist offline   Mit Zitat antworten
Alt 01-06-2004, 21:42   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Ort: Koeln
Beiträge: 58
Eine andere Moeglichkeit waere wohl auf einer Ebene ein groesseres Rechteck zu bewegen, und auf einer Ebene darueber einen gefuellten Kreis zu maskieren. Es waere dann nur der Teil des Rechtecks sichtbar ueber dem der Kreis liegt, und man koennte durch Bewegen des Rechtecks diesen Teil groesser werden lassen.
Gruss KH
maxel ist offline   Mit Zitat antworten
Alt 01-06-2004, 22:31   #6 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
ActionScript:
  1. //drawArc-function by anyway
  2. MovieClip.prototype.drawArc = function(xc, yc, r1, r2, ngl, stngl) {
  3.         var x2, y2, xp, yp, l, t;
  4.         t = Math.PI/4*(ngl/Math.abs(ngl));
  5.         ngl *= Math.PI/180;
  6.         stngl *= Math.PI/180;
  7.         l = Math.floor(ngl/t);
  8.         for (var i = 0; i<Math.abs(l); i++) {
  9.                 x2 = xc+r1*Math.cos((stngl+t));
  10.                 y2 = yc+r2*Math.sin((stngl+t));
  11.                 xp = xc+r1*(2-Math.sin((Math.PI-t)/2))*Math.cos((stngl+t/2));
  12.                 yp = yc+r2*(2-Math.sin((Math.PI-t)/2))*Math.sin((stngl+t/2));
  13.                 this.curveTo(xp, yp, x2, y2);
  14.                 stngl += t;
  15.         }
  16.         if (Math.abs(ngl-l*t)>Math.PI/360) {
  17.                 x2 = xc+r1*Math.cos((stngl+ngl-l*t));
  18.                 y2 = yc+r2*Math.sin((stngl+ngl-l*t));
  19.                 xp = xc+r1*(2-Math.sin((Math.PI+ngl-l*t)/2))*Math.cos((stngl+(ngl-l*t)/2));
  20.                 yp = yc+r2*(2-Math.sin((Math.PI+ngl-l*t)/2))*Math.sin((stngl+(ngl-l*t)/2));
  21.                 this.curveTo(xp, yp, x2, y2);
  22.         }
  23. };
  24. //Zeichne Teilkreis
  25. MovieClip.prototype.teilkreis= function(xc,yc,r,ngl,ln,fl){
  26.         var ngl_bogen=ngl/180*Math.PI;
  27.         with(this){
  28.                 moveTo(xc,yc);
  29.                 lineStyle(ln[0],ln[1],ln[2]);
  30.                 beginFill(fl[0],fl[1]);
  31.                 lineTo(xc+r,yc);
  32.                 drawArc(xc,yc,r,r,ngl,0);
  33.                 lineTo(xc,yc);
  34.                 endFill();
  35.         }
  36. }
  37. //Bedeutung der variabblen in der teilkreis-Funktion
  38. //xc: x-Position des Teilkreismittelpunkts
  39. //yc: y-Position des Teilkreismittelpunkts
  40. //r: Radius des Teilkreises
  41. //ngl: Winkel des Teilkreises
  42. //ln: lineStyle-Daten als array
  43. //beginFill-Daten als array
  44. //Beispiel:
  45. teilkreis(50,50,30,240,[0, 0xff0000, 100], [ 0xff0000, 50]);

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 01-06-2004, 22:46   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
...ich liebe es...

gruß@alois
warrantmaster ist offline   Mit Zitat antworten
Alt 01-06-2004, 22:55   #8 (permalink)
sambista
 
Benutzerbild von zappa
 
Registriert seit: Jun 2001
Ort: rodgau
Beiträge: 1.270
sowas hab ich auch gesucht!!!

man, wäre math doch schon immer "angewandte mathematik" gewesen!!!

wie viel leichter hätte man sowas verstehen gelernt!!!!

cos .... sin.... abs.....arc................

DANKE ALOIS!!!!
__________________
DON´T PANIC!!
ALLES WIRD GUT! ;)
zappa ist offline   Mit Zitat antworten
Alt 02-06-2004, 09:20   #9 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
hut ab alois, ich hatte bereits das vergnügen deinen ringzauber kennezulernen, war hier aber nicht anfangs von einer animation die rede, so ne art sekundenzeiger der dann immer mehr fläche eines kreises sichtbar werden läßt?
ich hab das auf jedenfall so verstanden und mal hierfür ne zip drangehängt
wie ist hier eigentlich die beste möglichkeit ne fla oder swf rüberzubringen, als zip?
gibt es nicht die möglichkeit die hier als swf abzulegen und zu verlinken, so das man sich erst ein bild machen kann von dem was man da herunterlädt?
Angehängte Dateien
Dateityp: zip kreis.zip (6,6 KB, 35x aufgerufen)
mooseMash ist offline   Mit Zitat antworten
Alt 02-06-2004, 09:36   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: Stuttgart
Beiträge: 25
wow danke für die Hilfe!

ich habs jetzt so gelöst:

Meine Animation im MC steuer ich nun zeitlich mit Hilfe dieses Threads:

Geschwindigkeit von Zeitleistenanimationen unabhängig von der Bildrate steuern

wunderbar
richyt ist offline   Mit Zitat antworten
Alt 02-06-2004, 10:21   #11 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Geschrieben von mooseMash
hut ab alois, ich hatte bereits das vergnügen deinen ringzauber kennezulernen,....
....ups, jetzt hat Du mich geoutet , ich hab hier nämlich eigentlich nur mein script aus diesem thread vereinfacht....
Zitat:
.... war hier aber nicht anfangs von einer animation die rede,....
...das ist ja auch kein problem, kleines Beispiel gefälligst:
ActionScript:
  1. //hier,die funktionen aus dem script das ich vorher gepostet habe
  2. //und dann nur noch
  3. uhranimation=function(){
  4.     z++
  5.     clear();
  6.     teilkreis(100,100,80,z,[],[0xff0000,100]);
  7.     if(z==360)clearInterval(myInterval);
  8. }
  9. z=0;
  10. myInterval=setInterval(uhranimation,25);

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (02-06-2004 um 10:22 Uhr)
Alois 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:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele