Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-11-2011, 15:21   #1 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
Zählerstand gezielt auf einen Wert bringen

hallo,

arbeite zur zeit an einem zähler (wie ein typsicher strom oder gas verbrauchszähler) in dem die werte nach oben durchrattern. allerdings soll sich der zählerstand auf einen bestimmten wert zubewegen und diesen am ende korrekt anzeigen.

wenn ich zb. auf 150 gehen will ist die 1 natürlich schon wieder zur hälfte aus dem bild was ich vermeiden muss. ich berechne den kram zz. wie folgt...

ActionScript:
  1. // an dieser stelle ist value gegeben was der aktuelle wert sein soll
  2.  
  3. rest = value - int(value);   // nachkommastellen wert
  4. s = String(int(value));      // ganzzahl als string
  5.            
  6. for each (c in columns) {
  7.    v = int(s.substr(-1, 1));                 // aktueller wert der spalte
  8.    c.y = -v * numHeight - rest * numHeight;  // y der spalte berechnen, numHeight enthält die höhe einer zahl im textfeld
  9.                    
  10.    rest = ((v / 10) + (rest / 10));          // rest berechnen
  11.                    
  12.    s = s.substr(0, s.length - 1);            // letzten wert abtrennen
  13. }

in columns sind (in umgekehrter reihenfolge) textfelder welche die zahlen 0-0 (mit 1-9 dazwischen) enthalten.

den endwert auf den sich der zähler zubewegen soll habe ich natürlich auch gegeben, nur weiß ich nicht wie ich ihn die berechnung mit einbeziehen soll so das der zählerstand den korrekten endwert anzeigt.

ich kann später auch noch ein lauffähiges beispiel posten falls benötigt

schonmal danke im vorraus!

Geändert von ING (02-11-2011 um 15:22 Uhr)
ING ist offline   Mit Zitat antworten
Alt 02-11-2011, 15:46   #2 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
ist das Problem die hunderter-Stelle bei 150, oder wie du zum Endwert kommst? - irgendwie unklar..

also damit die hunderter-stelle nicht halb verschwindet kannst du ja einfach den rest bei c.y weglassen, oder?
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 02-11-2011, 17:00   #3 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
Zitat:
Zitat von padavan Beitrag anzeigen
ist das Problem die hunderter-Stelle bei 150, oder wie du zum Endwert kommst? - irgendwie unklar..
ganz genau. der endwert wird dynamisch bestimmt.

Zitat:
Zitat von padavan Beitrag anzeigen
also damit die hunderter-stelle nicht halb verschwindet kannst du ja einfach den rest bei c.y weglassen, oder?
das is mir schon irgendwie klar aber bringt das mal in die rechnung ohne an dynamik zu verlieren, der zähler soll alle werte "anfahren" können. bei der zehner stelle gibts ja das gleiche probleme, genauso wie bei den tausender usw.

unten im anhang gibt es den code und ein beispiel... (bitte tweener mit dazu kopieren)

und gleich noch ne frage hinterher: das blurring (in der klasse Counter) sorgt dafür das die zahlen die sich gerade langsam bewegen hin und her ruckeln, schalte ich das blurring aus ist der effekt nicht mehr da, hat jemand eine ahnung wie das entsteht bzw. was man dagegen tun kann?
.
Angehängte Dateien
Dateityp: swf Counter.swf (20,9 KB, 9x aufgerufen)
Dateityp: rar src.rar (2,5 KB, 4x aufgerufen)

Geändert von ING (02-11-2011 um 17:08 Uhr)
ING ist offline   Mit Zitat antworten
Alt 02-11-2011, 22:26   #4 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 496
so wie ich das sehe musst du den rest weglassen - die dynamik entsteht erst wenn der schwellwert (zehn) erreicht ist - dann soll jeweils die höherer stelle tweenen - vorher nicht

wenn du den "rest" direkt reinrechnest, wie jetzt, dann müsstest du bei werten wie im beispiel (150) den hunderter wieder zurück-tweenen und das wäre unschön, finde ich
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 03-11-2011, 06:53   #5 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
Zitat:
Zitat von padavan Beitrag anzeigen
so wie ich das sehe musst du den rest weglassen - die dynamik entsteht erst wenn der schwellwert (zehn) erreicht ist - dann soll jeweils die höherer stelle tweenen - vorher nicht
naja, das entspricht dann aber nicht mehr einem zähler udn das mit dem tweenen wird glaube ich auch nichts, wenn der zähler sich innerhalb von 2 sekunden von 1 zu 1 millionen bewegt macht das 100000 tweens, das macht keine engine mit

es bliebe also nur das sprunghafte umspringen weshalb ich mir den ganzen murks hätte sparen und nur ein einfaches textfeld nehmen können.

Zitat:
Zitat von padavan Beitrag anzeigen
wenn du den "rest" direkt reinrechnest, wie jetzt, dann müsstest du bei werten wie im beispiel (150) den hunderter wieder zurück-tweenen und das wäre unschön, finde ich
ja, vor allem programmiertechnisch. wie gesagt, richtige tweens fallen aufgrund oben erwähnten problematik raus.

-----------------

ich hab das ganze aber inzwischen gelöst, problem war und ist wohl einfach das die normale zählerstand mechanik wie ich sie zuerst umgesetzt habe die benötige funktionalität einfach nicht hergibt.

hab die werte jetzt voneinander gelöst und eine skalierung drauf gemappt. funzt, sieht genauso gut aus und hat nur noch die hälfte an code
ING ist offline   Mit Zitat antworten
Alt 03-11-2011, 09:41   #6 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
edit:
Zitat:
ich hab das ganze aber inzwischen gelöst...
hatte das noch nicht gelesen.
wäre neugierig zu sehen, wie du es gelöst hast.
Angehängte Dateien
Dateityp: zip src.zip (2,9 KB, 3x aufgerufen)
Dateityp: swf INGCounter.swf (11,9 KB, 11x aufgerufen)
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (03-11-2011 um 09:44 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 06-11-2011, 18:29   #7 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
sind leicht ähnlich unsere lösungen, wie schon erwähnt hab ich versucht ne skalierung drauf zu legen was, ähnlich wie bei dir, in einem getter und setter für die Column klasse endete...

ActionScript:
  1. public function set scale(value:Number) : void {
  2.    y = -(value % 1) * 10 * numHeight;
  3.    lastScale = value;
  4. }
  5.  
  6. public function get scale() : Number {
  7.    return lastScale;
  8. }

den ganze berechnung in der Counter klasse hab ich mir dann aber erspart und anhand der differenz zwischen startValue und endValue die unteschiedlichen skalierungen für die einzelnen spalten berechnet und für jede spalte einen tween gestartet.

deine lösung gefällt mir da aber besser weil sie flexibler ist, weshalb ich auch mit der weiter arbeiten werde, deshalb vielen dank für deine lösung! sehen immer gut aus diese bitshift's

werde in den nächsten tagen hier vllt. auch dann die fertige klasse(n) hier nochmal reinstellen falls interesse besteht
ING 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einen Ordner zum fallen bringen - brauche Hilfe chocolate_guy Flash Einsteiger 3 14-12-2006 09:41
einen Wert im Array mit dem ersten Wert tauschen djdwarf ActionScript 1 7 10-04-2006 16:10
zählerstand bei hp laserjet 5l oder 6l g3ntle]V[an Am Rande 3 12-02-2003 14:28
kann mann einen film von einem level auf einen anderen bringen? hendrik s Flash 4 und Flash 5 3 24-10-2002 10:24
Alle Bilder auf einen Schlag in eine Auflösung bringen. aba wie? WurstKuchen Flash 4 und Flash 5 9 09-02-2002 21:02


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele