| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Linksaußen Registriert seit: Jun 2003 Ort: Essen
Beiträge: 556
| saubere Variablendeklaration
sicher gibt's schon einige Post's zu diesem Thema, trotzdem hab' ich noch ein paar Fragen dazu (auch weil in der Hilfe von Flash 8 in den Codebeispielen die Deklaration jetzt ein bisschen anders aussieht als bisher) Im Grunde kann man unterscheiden zwischen 3 Arten: Code:
Aber: ist es auch ein Unterschied wenn die Deklaration auf der Hauptzeitleiste (also _root.) stattfindet? Dann ist doch sowieso beides global, oder nicht? dann: Wenn ich in einer Funktion eine Schleife habe: Code:
Code:
darüber hinaus taucht nun in der Hilfe immer wieder diese Schreibweise auf: Code:
Ich wär' doch so gern ein "sauberer" Programmierer!! ...muss aber doch immer wieder feststellen, daß ich nur 'ne Drecksau bin...
__________________ Der Ball ist rund |
| | |
| | #2 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.274
|
Sauber wäre dann keine Schleife im _root Wenn du deine Schleifenvariable in einer Funktion definierst, dann ist sie auch lokal und nach Ablauf der Funktion in der GarbageCollection. Code: function init(): Void
{
for( var i: Number = 0 ; i < 1 ; i++ )
{
trace( i );
}
}
init();
trace( i ); |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
wobei ich dann mehr auf PHP-Code: Wichtig auch, dass du eine Variable nicht mehrfach deklarierst (wie es Macromedia so gerne macht), da dies dann im Mtasc nicht mehr funktioniert.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #4 (permalink) | |
| Linksaußen Registriert seit: Jun 2003 Ort: Essen
Beiträge: 556
| Zitat:
__________________ Der Ball ist rund | |
| | |
| | #5 (permalink) |
| Trace Schwester Registriert seit: Sep 2005
Beiträge: 135
|
mal meine Bescheidene Meinung dazu: Code:
Code:
Code:
Code:
Code:
Code:
Code:
|
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2002
Beiträge: 108
| da helft mir doch mal auf die Sprünge!
Habe gerade bei meiner Suche nach einem Variablen-Deklarations-Problem im Forum dieses Thema gefunden. Ich liebte ja bisher diesen Weg, weil er schnell und unkompliziert ist: Code: fade_speed=4 Code: var fade_speed:Number = 4; Mit entsetzen musste ich feststellen, dass trotz meiner sauberen Deklaration (fade_speed ist eine Zahl) folgender Code nicht funktioniert, wenn fade_speed über ein Eingabefeld auf der Bühne geändert wird! Code: _root.mc._alpha += _root.fade_speed; Funktionieren tuts übrigens nur so: Code: _root.mc._alpha += parseInt(_root.fade_speed); |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Mar 2002
Beiträge: 108
|
Hallo André, Flash 8, veröffentlich für F8 AS2. Ist verrückt, oder? ------------------------------------- Hier noch ein Beispiel: Code: var a:Number = 5;
var b:Number = 2;
var c:Number = 7;
this.onEnterFrame = function() {
c = a+b;
}; Geändert von launcher (05-02-2006 um 18:42 Uhr) |
| | |
| | #9 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.274
|
Ach so: Eingabefeld. Das ist richtig, weil immer Type String. Also die Typen werden nur während des Kompilierens hinzugezogen und eben eventuelle Fehlermeldungen generiert. Während der Laufzeit werden keine Typen irgentwohin gebogen. Daher ist dein Fall auch etwas unschön, denn Eingaben in ein Textfeld sind immer Strings (per default). Das es früher ging ist aber aus meiner Sicht eher zu bemängeln, als das es jetzt nicht mehr geht. Es fehlt allerdings der CompilerError. In AS3 ist das alles viel besser gelöst. Richtig wäre dann folgende Vorgegehensweise über beispielsweise ein UpdateEvent. Code: var value: Number = 0;
inputField.onChanged = function(): Void
{
value = parseFloat( this.text );
} |
| | |
| | #11 (permalink) | |
| >>>||<<< Registriert seit: Dec 2002 Ort: München
Beiträge: 208
| Zitat:
Zudem schafft es transparenteren Code auch für andere, die sofort sehen welche Werte die Variable aufnehmen kann (wie z.B. eigene Datentypen wie structs o.ä.) Uns wurde das während des Studiums schon so eingehämmert, dass ich gar micht gar nicht mehr traue eine Variable ohne Typ zu deklarieren ;-) | |
| | |
| | #12 (permalink) |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.274
|
Das hat echte Vorteile, wenn man stipide alles typisiert, nicht nur einfache Typen wie Strings, Number, etc. Zum ersten minimiert es duzende von Schreibfehlern, die man einfach macht und man reduziert sein Denken auf die Vorgehensweise des Rechners, was für komplexere Projekte unbedingt nötig ist. Richtig spannend wird es dann mit AS3, weil dort Typisierung zudem noch einen Performancegewinn mit sich bringt. Also, untypisierte Variablen müssen vom Interpreter in Echtzeit ausgewertet werden. Mit ein Grund warum Actionscript 2- so langsam ist. Letztendlich braucht die unterste Ebene im Rechner immer Typen, um überhaupt etwas interpretieren zu können. Was gehört wohin und was kann ich damit anfangen. Für mich war die konsequente Umsetzung von Typen erst der Begin, sicherer zu programmieren. |
| | |
| | #14 (permalink) | |
| [+] Registriert seit: Dec 2002 Ort: cologne
Beiträge: 2.274
| Zitat:
| |
| | |
| | #15 (permalink) |
| Linksaußen Registriert seit: Jun 2003 Ort: Essen
Beiträge: 556
|
Wie sieht's denn aus mit Variablen, die den Typ wechseln? Also, ich hab' z.B. eine Art Countdown in einer Andwendung. Da ist also ein Textfeld welches mir _root.countdownVAR anzeigt. Ganz klar ist das während des Countdowns eine Number. Damit aber das Textfeld nach dem Countdown leer ist hab' ich im Code folgendes: Code:
Soll ich jetzt das Textfeld extra in einen MC packen und mit _visible arbeiten, oder gibt's noch andere Möglichkeiten? Oder sollte man grundsätzlich keine Typen-Wechsel-Variablen (...so eine Schlmpe, die Variable!! ) benutzen?Oder soll ich für den beschriebenen Fall eine zweite Countdown-Var deklarieren, die dann immer Code:
__________________ Der Ball ist rund |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |