Autor |
Nachricht |
BK49
Threadersteller
Dabei seit: 22.06.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 22.06.2010 14:40
Titel Getter Setter Trouble |
|
|
Hallo!
Ich habe eine Dokumentklasse Main.as und eine Klasse Objects.as.
In der Objects Klasse habe ich einen Setter eingebaut, der aus der Main heraus die var _firstDrag:Boolean auf false setzen soll. Flash sagt immer firstDrag wäre eine nicht definierte Eigenschaft. Die Objekte aus Objects.as gehen per addChild() auf die Bühne...
Objects.as:
Code: |
private var _firstDrag : Boolean = true;
public function set firstDrag(fD : Boolean) : void
{
_firstDrag = fD;
}
|
Main.as:
Code: |
trace(catches[1] + tmpCounter); // Namen des Objekts ausgeben
getChildByName(catches[1] + tmpCounter).firstDrag = false;
|
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Di 22.06.2010 15:08
Titel
|
|
|
ich hab zwar keinen peil von AS aber müsste das
Code: |
public function set firstDrag
|
nicht so heissen?
Code: |
public function setFirstDrag
|
// edit
was anderes. kann as3 denn nicht die getter und setter methoden automatisch generieren? stichwort synthesizing ?
Zuletzt bearbeitet von choise am Di 22.06.2010 15:09, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
BK49
Threadersteller
Dabei seit: 22.06.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 22.06.2010 15:26
Titel
|
|
|
Hi!
Also ich hab das Skript zum laufen gebracht. Das stage object muss noch als object.as zugehörig gecasted werden:
Code: | Object(getChildByName(catches[1] + tmpCounter)).firstDrag = false; |
Mit den Schreibweisen habe ich beides schon mal gesehen, aber überwiegend set und funktionsname getrennt.
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 22.06.2010 16:34
Titel
|
|
|
@Choise
nein nein
Code: | public function set firstDrag(v:Boolean):void |
ist schon richtig. Das ja das geile an AS und das was mir bei Java so fehlt
So kannst Du private variablen nach aussen als public tarnen, hast aber direkt nen Watch drauf
EDIT: Der FB4 erstellt dir automatisch die getter und Setter
Zuletzt bearbeitet von phihochzwei am Di 22.06.2010 16:36, insgesamt 1-mal bearbeitet
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Di 22.06.2010 16:39
Titel
|
|
|
kann man bei java in der objekt klasse nicht einfach die setter/getter methode überschreiben wenn man die in irgendeiner art und weise validieren will oder sonstige dinge machen will?
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 22.06.2010 17:22
Titel
|
|
|
Naja, de für mich entscheidene Unteschied ist der. Stell Dir vor, du hast eine private variable num die du in einem interval oder onclick erhöhen willst. gleichzeitig soll dann irgendwas in der jeweiligen instanz passieren. In Java wäre das sowas
Code: |
// Code in der Klasse
private int num = 0;
public void setNum(int n){
this.num = n;
//hier dein Code.
}
public int getNum(){
return num;
}
// Ausserhalb dann
instanz.setNum(instanz.getNum() + 1);
|
In AS3 sieht das jetzt sehr ähnlich aus:
Code: |
private var _num:int = 0;
public function set num(n:int):void{
this._num = n;
/// dein Code
}
public function get num():int{
return this._num;
}
//Ausserhalb dann
instanz.num++;
|
Und diese LETZTE ZEILE ist das, was mir bei Java oftmals fehlt, weil du damit natürlich bei Objekten auch mal ganz entspannt ne For...in machen kann
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Di 22.06.2010 20:10
Titel
|
|
|
ECMAScript Style ist halt schon was feines. Ja das wirst du so in Java nie schaffen. Naja, genug OT für heute
|
|
|
|
|
|
|
|
Ähnliche Themen |
USB-Trouble
|
|