Volledige versie bekijken : Class var in andere Class
X_OwNeR_X
%Europe/Berlin %617 %2009, 15:48
Ben ik weer met een klein vraagje maar waar ik geen duidelijk antwoord op kan vinden...
Ik heb in mijn ene class een var genaamd currentValue, deze staat op 0, maar als je op A drukt wordtie +2 :)
Nu wil ik in een andere class deze var gebruiken zodat ik kan zeggen: If(currentValue=2) { doe dit}
Maar hij zegt nu telkens 1120: Access of undefined property currentValue. omdatie niet gedefined is in die andere class :(
Dauntless
%Europe/Berlin %626 %2009, 16:02
Je moet die variabele aanspreken via de instance waarop hij gedefinieerd is.
Bv
if(myInstance.currentValue == 2) { //...}
X_OwNeR_X
%Europe/Berlin %630 %2009, 16:07
Instance is dat stukje wat je in de FLA plaats om de classes te laten werken?
var display:DigitalDisplay = new DigitalDisplay();
Dat dikgedrukt?
Dauntless
%Europe/Berlin %643 %2009, 16:26
Daar is display inderdaad een instance van de DigitalDisplay classe.
X_OwNeR_X
%Europe/Berlin %647 %2009, 16:31
Ok bedankt :)
Ik heb nu dus dit in de fla staan:
var display:DigitalDisplay = new DigitalDisplay();
display.x = 547;
display.y = 200;
addChild(display);
//Score bijhouden
var counter:SetCount = new SetCount();
addChild(counter);
In die DigitalDisplay wil ik die andere var gebruiken, dan wordt het dus zo?
public function setCount(to:int):void {
var target:Array = numberConfigs[to];
if(counter.currentValue==2){doe dit}
}
Dauntless
%Europe/Berlin %663 %2009, 16:55
Nee, want je hebt counter niet aangemaakt in je DigitalDisplay instance.
Je zal moeten doorgeven:
display.setCounter(counter);public function setCounter(p_counter:SetCount):void
{
this._counter = p_counter;
}
private var _counter:SetCount;if(this._counter.currentValue == 2)
X_OwNeR_X
%Europe/Berlin %365 %2009, 09:46
Ik dacht dat die lage streepjes voor AS2 waren :P
Dauntless
%Europe/Berlin %370 %2009, 09:53
De standaard properties hebben nu geen underscore omdat ze vervangen zijn door een getter/setter. Intern hebben ze wel een _, en dat is ook hier dus het geval.
X_OwNeR_X
%Europe/Berlin %371 %2009, 09:54
Ok heel erg bedankt :D Hij werkt :D
e.l.dam
%Europe/Berlin %448 %2009, 11:46
De standaard properties hebben nu geen underscore omdat ze vervangen zijn door een getter/setter. Intern hebben ze wel een _, en dat is ook hier dus het geval.
't Is toch meer een gewoonte om voor private vars een underscore te gebruiken? Kun je aan je var zelf zien of het een private of public is.
jaspermuts
%Europe/Berlin %490 %2009, 12:45
Jup. Dat is ook wat Dauntless eigenlijk zegt
bijv de setter van rotation van bijv een DisplayObject zou intern waarschijnlijk zoiets opgebouwd worden:
private var _rotation:Number;
public function set rotation(value:Number):void
{
// nog wat extra handelingen hier...
this._rotation = value;
}
public function get rotation():Number
{
return this._rotation;
}
Intern met underscore ( this._rotation ) maar extern zonder ( myInstance.rotation = 5 of trace(myInstance.rotation) ).
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.