Flashhilfe.de - Flash Community

addZero - Prototype u. Klasse [Flash 6]

 


AntwortenRegistrieren Seite1  

Madokan#1
Benutzerbild von Madokan
Beiträge: 130
Wohnort: Berlin/Germany
Registriert: Mar 2002

18.04.2003, 02:13

Hi Folks,

Hier was für eine Punktestandanzeige - inspiriert aus einem Flashforum.de Thread. Ich bin sicher damit hat man viel Spass. Aber fragt nicht nach der Lesbarkeit - vielleicht ergeben sich dennoch neue Erkenntnisse aus dem Skript.

ActionScript:
1
2
3
4
5
6
7
Number.prototype.addZeros = function(p) {
   return new Array(p - length(this) + 1).join('0') + this;
};

// Usage:
punkte = 200;
trace(punkte.addZeros(10)); // result: 0000000200


oder als Klasse:

ActionScript:
1
2
3
4
5
6
7
8
9
10
Score = function (points) {
        this.points = points;
};

Score.prototype.display = function(p) {
      return new Array(p - length(this.points) + 1).join('0') + this.points;       
};

myScore = new Score(200).display(10);
trace(myScore);


Hinweis: Das Skript ist sowohl Flash 5 als auch MX tauglich!

Be inspired!

Liebe Grüsse
Matze K.

[Flashstar]
http://www.flashstar.de
[Flashstar]
http://www.flashstar.de
Werbung
Beiträge: 0
Registriert: Feb 2016


petalustik#2
Benutzerbild von petalustik
Beiträge: 510
Wohnort: Bonn
Registriert: Apr 2002

26.10.2003, 10:14

Ok, aber warum funktioniert das ganze nichtmehr unter flash 7 (as 1.0)?

da kommt bei mir doch tatsächlich folgendes:

"undefined0undefined0undefined0undefined0undefined0undefined0undefined0undefined200"

scheinbar ist ein lehres Array-Elment im flash7 player undefined:

so klappts auch unter flash 7, vielleicht kann das der Madokan nochma verfeinern & dann auch in die prototypen posten.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
Number.prototype.addZeros = function(p) {
   var a= new Array()
   for(var i=0; i<(p - length(this) + 1);i++) {
      a.push("");
   }
   return a.join("0")+ this;
};

// Usage:
punkte = 200;
trace(punkte.addZeros(10)); // result: 0000000200




Gruß
PetaLustiK

Schüler, 16
Gruß
PetaLustiK

Chemiker, 19
Sebastian#3
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

28.10.2003, 17:10

Scheint ein Bug zu sein.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//
Number.prototype.addZeros = function(p) {
   var a = "", l = p-length(this);
   while(a.length < l) {
        a += "0";
    }
    return a + this;
};

// Usage:
punkte = 200;
trace(punkte.addZeros(10)); // result: 0000000200


// #######


Number.prototype.addZeros = function(p) {
    return new Array(p - length(this) + 1).join("0").split("undefined").join("") + this;
};

// Usage:
punkte = 200;
trace(punkte.addZeros(10)); // result: 0000000200



;)))

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 28.10.03 um 17:29 Uhr
Madokan#4
Benutzerbild von Madokan
Beiträge: 130
Wohnort: Berlin/Germany
Registriert: Mar 2002

Themenautor/in

31.10.2003, 11:04

Jungs da habt ihr aber noch nicht folgenden Thread beachtet:

http://www.flashhilfe.de/lesen/forumtipps_0_000_0_97925_97925.html

So ein array ist ja im Grunde auch nichts anderes als eine komplexe Variable (Wertebehälter).

Das Problem kann jedoch viel leichter behoben werden - Publish Setting Flash Player 6. :)

ActionScript:
1
2
3
4
5
6
7
8
// Hier die Anpassung
Number.prototype.addZeros = function(p) {   
    return new Array(p - length(this) + 1).join('0').split("undefined").join('') + this;
};

// Usage:
punkte = 200;
trace(punkte.addZeros(10)); // result: 0000000200


Hinweis: Die Klasse funktioniert einwandfrei - nun wisst Ihr ja was uns in Flash MX 2004 blüht und das nicht nur in AS 2.0. :)

Liebe Grüsse
Matze K.

P.S.: Und denkt daran der Prototype ist für Flash 6 deklariert, dort war die Welt noch nicht ganz so strikt gestrickt!

[Flashstar]
http://www.flashstar.de
[Flashstar]
http://www.flashstar.de
Geändert von Madokan am 31.10.03 um 11:10 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#5
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

31.10.2003, 14:27

???

Das Script hatte ich auch gepostet.... war aber nicht unbedingt ernst gemeint.

>> Jungs da habt ihr aber noch nicht folgenden Thread beachtet:
Doch und das beachte ich nicht erst seit MX 2004. - oder hab ich da was übersehen?

Teste mal folgendes:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ary = new Array(5);
// undefined0undefined0undefined0undefined0undefined
trace(ary.join("0"));

// -------

ary_2 = new Array();
ary_2[0] = "";
ary_2[1] = "";
ary_2[2] = "";
ary_2[3] = "";
ary_2[4] = "";
// 0000
trace(ary_2.join("0"));

Laut Flashhilfe gibt man ja mit Array(nr) die Länge des Arrays an.

Schon komisch, oder!?

Grüsse,
Sebastian Wichmann

Flashhilfe.de Webmaster
http://www.flashhilfe.de
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 31.10.03 um 14:28 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de