Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-08-2003, 12:05   #1 (permalink)
::: codeslinger :::
 
Benutzerbild von L4M4R
 
Registriert seit: Apr 2003
Ort: schweiz
Beiträge: 725
Tausender trennen

hab da mal was gemacht:
ActionScript:
  1. Number.prototype.tausender_trennen = function(f,s){
  2. if(f){p = s}else{p = "'"}; t = ""; n = []; l = String(this).split("."); a = l[0].split(""); h = l[1].split(""); w = 0; k = 3;
  3. for(i in a){if(w == k){k+= 3; n.push(p);n.push(a[i])}else{n.push(a[i])}; w++};
  4. for(c in n){t += n[c]}; if(h.length > 0){t += "."}; for(y in h){t += h[h.length-y-1]};
  5. return t;
  6. }
  7.  
  8. //tausender_trennen(boolean,string); ist boolean wahr wird string als Trennzeichen genommen
  9.  
  10. test1 = 20000;
  11. trace(test1.tausender_trennen()); //echo 20'000
  12. test2 = 45123.5233442;
  13. trace(test2.tausender_trennen(true,"`")); //echo 45`123.5233442
  14.  

nur falls wer gebrauchen kann oder so, wollte sowieso mal fragen ob es nicht sinnvoll wäre ne Datenbank mit scripts zu erstellen die gebräuchlich sind, z.B. auch Funktionen aus PHP, würde manches vereinfachen!! Nur so als Idee

PS: wer das Script verbessern will soll's ruhig tun, weiss net ob man's kürzer machen kann, bzw. anpassen
__________________
Am Anfang schuf Gott das Advanced Research Projects Agent Network, dass auf den Namen ARPAnet getauft wurde, und das ARPAnet wuchs und gedieh und zeugte das Milnet, und das ARPAnet und das Milnet zeugten das Internet, und das Internet und seine Nachkommen, USENET Newsgroups und das World Wide Web, wurden zu einer Dreifaltigkeit, die das Leben seines Volkes für alle Zeiten grundlegend veränderte. L4M4R
L4M4R ist offline   Mit Zitat antworten
Alt 21-05-2005, 18:41   #2 (permalink)
volln00b
 
Benutzerbild von ice-breaker
 
Registriert seit: Mar 2005
Ort: Kronberg
Beiträge: 163
ist ganz nett, nur könntest du das auch als funktion machen?
also net dass ich das über this.zahl.format() oder so aufrufen muss sondern this.zahl=format(this.zahl) ?
weil das wäre viel leichter einzubauen, denn wenn ich das bei mir so reinmache kommt es leider zu konflikten :-(
__________________
<<vive la PHP>>
ice-breaker ist offline   Mit Zitat antworten
Alt 21-05-2005, 19:07   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Fein, aber - naja, n bissl hübscher geht des schon...
ActionScript:
  1. Number.prototype.splitThousands = function (pDelimiter) {
  2.    
  3.     var firstPart = String (this).split (".")[0].split ("");
  4.     var secondPart = String (this).split (".")[1];
  5.                
  6.     for (var i in firstPart) {
  7.         if ((firstPart.length - i) % 4 == 3 && i > 0) {
  8.             firstPart.splice (i, 0, pDelimiter ? pDelimiter : "");
  9.         }
  10.     }
  11.    
  12.     return firstPart.join ("") + (secondPart ? "." + secondPart : "");
  13. }
  14.  
  15. var n = 14854020.955;
  16. trace (n.splitThousands ("°"));

@ice-breaker: mit AS2-Code funktioniert's nicht mehr... aber die Funktion da draus kannst dir doch selber ableiten, oder..?


[edit]
Würmer rausgemacht....
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (21-05-2005 um 19:21 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 21-05-2005, 19:46   #4 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...naja,
hab auch mal 'ne Version gebastelt:
ActionScript:
  1. Number.prototype.tausender_trennen = function(p) {
  2.     if (p==undefined) {
  3.         p = "'";
  4.     }
  5.     var l = this.toString().split(".");
  6.     var t = "";
  7.     while (l[0]/1000>=1) {
  8.         l[0] = (l[0]/1000);
  9.         var part = (Math.round((l[0]-Math.floor(l[0]))*1000)).toString();
  10.         while (part.length<3) {
  11.             part = "0"+part;
  12.         }
  13.         t = p+part+t;
  14.         l[0] = Math.floor(l[0]);
  15.     }
  16.     t = l[0]+t;
  17.     if (l[1]) {
  18.         t += "."+l[1];
  19.     }
  20.     return t;
  21. };
  22. //tausender_trennen(boolean,string); ist boolean wahr wird string als Trennzeichen genommen
  23. test1 = 2000000;
  24. trace(test1.tausender_trennen());
  25. //echo 20'000
  26. test2 = 45123.5233442;
  27. trace(test2.tausender_trennen("°"));
  28. //echo 45°123.5233442
  29.  

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 21-05-2005, 19:52   #5 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
sorry für OT


... jeder darf mal
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 21-05-2005, 19:52   #6 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Sieht komplizierter aus, macht aber auch nix anderes, Alois..?

@RK: raus!!!


__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 21-05-2005, 19:57   #7 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
ich hatte auch eine, bereits vor sonar, aber dann hatte ich eben das Problem (prototype funktion ungültig!?)

konnte es deswegen jetzt nicht testen:

ActionScript:
  1. Number.prototype.delimit = function ( sDelimiter:String )
  2. {
  3. sDelimiter = ( sDelimiter != undefined ) ? sDelimiter : "'";
  4.  
  5. var sNum:Array = this.toString().split( '.' );
  6. var sInt:String  = sNum.shift().toString();
  7. var sNew:String = '';
  8.  
  9. for ( var i:Number = sInt.length; i > 0; i-- )
  10. {
  11. sNew += ( i != sInt.length && i % 3 == 0 ) ? sDelimiter : '';
  12. sNew += sInt.charAt( sInt.length - i );
  13. }
  14. return sNew + ( sNum.length != 0 ? '.' + sNum.join('.') : '' );
  15. }

sollte aber klappen!?

Geändert von pokepika (21-05-2005 um 22:04 Uhr)
pokepika ist offline   Mit Zitat antworten
Alt 21-05-2005, 21:00   #8 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Zitat von sonar
Sieht komplizierter aus, macht aber auch nix anderes, Alois..?
....
...oooch, das mit dem komplizierten Aussehen, hab ich eigentlich bei L4M4R gedacht, und mir das dann einfach mal so 'nachgbastelt' wie es nach meiner Logik am übersichtlichsten wirkt. Inzwischen hattest Du gepostet und ich hab gedacht... das sieht ja noch komplizierter aus und hab dann meinen Mist auch noch gepostet ....scheint also Ansichtssache zu sein, das mit dem komplizierten Aussehen...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 21-05-2005, 21:30   #9 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
@pokepika: ich krieg da ein ".undefined" raus mit deiner Funktion...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 21-05-2005, 21:55   #10 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
jo, hast recht. habs verbessert, jetzt gehts.

ActionScript:
  1. Number.prototype.delimit = function ( sDelimiter:String )
  2. {
  3. sDelimiter = ( sDelimiter != undefined ) ? sDelimiter : "'";
  4.  
  5. var sNum:Array = this.toString().split( '.' );
  6. var sInt:String  = sNum.shift().toString();
  7. var sNew:String = '';
  8.  
  9. for ( var i:Number = sInt.length; i > 0; i-- )
  10. {
  11. sNew += ( i != sInt.length && i % 3 == 0 ) ? sDelimiter : '';
  12. sNew += sInt.charAt( sInt.length - i );
  13. }
  14.  
  15. return sNew + ( sNum.length != 0 ? '.' + sNum.join('.') : '' );
  16. }

habs jetzt auch irgendwie getestet gekriegt :|

Geändert von pokepika (21-05-2005 um 22:03 Uhr)
pokepika 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 09:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele