| |||||||
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) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 60
| Unterstrich bei Objekteigenschaften
Hi Leute, ich versuche grade, ActionScript zu lernen und bin dabei auf etwas gestoßen, was ich nicht verstehe. Um die Eigenschaften eines Balls festzulegen, benutzt der Autor meines Buchs die Anweisung this.radius = 0. Später allerdings benutzt er einen Unterstrich: this._radius = 0. Nun wollte ich fragen, ob beide Schreibweisen zulässig sind oder ob der Autor einen Fehler gemacht hat. Vielen Dank für eure Hilfe. |
| | |
| | #2 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Willkommen im Forum. Ein Unterstrich vor dem Namen einer Variable deutet heutsotage eine private Variable an, d.h. eine Variable, die nicht von außen gesetzt werden sollte, sondern nur über entsprechende Methoden (setRadius(...) z.B.) oder über Getter (radius = ...). Bei alten Eigenschaften, wie z.B. MovieClip._x gilt dies jedoch nicht, was dort der „_“ bedeuten soll wurde hier schon mehrmals erfolglos diskutiert.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #3 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Das mit dem Unterstrich ist guter Stil. Ich denke das ist ein Flüchtigkeitsfehler. Man kann Eigenschaften jedoch definieren wie man will. Wenn Du ein Objekt erstellst, das Eigenschaften und Methoden hat, legst Du den Namen fest. Da ist es gleich ob Du einen Unterstrich davor machst oder nicht.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 60
| Unterstrich Teil 2
Danke für die schnell Antwort, aber eins versteh ich immer noch nicht: Ich erstelle einen neuen Konstruktor namens Ball: function Ball (radius) { this.radius = radius; } Das "radius" in Klammern hinter "function Ball" ist nach meiner Logik eine Variable, die in der Funkton selbst den Wert von radius der Eigenschaft this.radius zuweist und kann deshalb auch jeden anderen Namen tragen heißen. Das "this.radius" in der Funktion ist aber doch keine Variable, denn "radius" muss doch von Action.Script schon vorher als "halber Durchmesser eines Kreises" definiert sein. Deshalb verstehe ich nicht, dass ich dies einfach in _radius ändern kann. Ich hoffe, ich konnte mein Problem verständlich machen. (Bemerkung: Der Autor benutzte diese andere Form mit Unterstrich im Zusammenhang mit der Methode addProperty, ich dachte, vielleicht könnte es von Bedeutung sein). |
| | |
| | #5 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Flash hat keine Ahnung was „radius“ ist, geschweige denn, was ein Kreis ist ![]() addProperty fügt getter und setter zu einem Objekt hinzu. D. H. in diesem falle hat ein Objekt (z.B. kreis) eine Eigenschaft, sagen wir z.B. radius. Der Wert dieser Eigenschaft wird in einer (privaten) Variable _radius gespeichert. Allerdings gibt es einiges zu tun, wenn man diesen Radius ändert, z.B. die Größe eines Kreises muss geändert werden. Deshalb reicht es nicht, wenn man zum ändern einfach schreibt: PHP-Code: Für solche Fälle gibt es getter und setter; sie können mit der Funktion addProperty erstellt werden. (in AS2 allerdings wesentlich eleganter direkt in einer Klasse). Damit sähe das ganze dann wie folgt aus: PHP-Code: PHP-Code:
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |