PDA

Volledige versie bekijken : Method uit een andere class opvragen II


Jordy
%Europe/Berlin %706 %2006, 16:57
Ik had hier al eerder een topic over lopen, ik weet niet of ik beter daarin verder kan gaan, maar ik heb maar even gekozen voor een nieuw topic (je kan ze toch evt samenvoegen ;) ).

Nog een vraagje over een method uit een andere class opvragen. Dit lukt me wel, maar toch ben ik er niet zeker van of ik het goed gebruik. Ik ben bezig met de competitie dus ik zal wat uitleg geven:

Ik heb een *.fla waarin in frame 1, elke class wordt aangesproken:
- foo:Foo
- foo1:Foo1
enzovoorts

Een paar frames later doe ik dus foo = new Foo;
Dit ivm classes waarin de variabele steeds andere waarden hebben. Het probleem zit hem nu in de class zelf. Omdat ik een method uit class "car" wil opvragen van uit de class "carAi" moet ik dus in de "carAi" class een "car:Car = new Car" code zetten. Ik ben er niet zeker van of dit een juiste manier is, aangezien ik die code ook al in de fla heb gebruikt.

In de fla gebruik ik die code om een auto op de stage te zetten, en te laten bewegen. In de class gebruik ik de code alleen om een method uit de car classe aan te spreken.

Kan ik dit beter op een andere manier doen, of is dit de enige :)

Dauntless
%Europe/Berlin %711 %2006, 17:04
Kan je die orgienele car instance niet meegeven aan de CarAI instance (bv via de constructor of via een aparte method).

Jordy
%Europe/Berlin %711 %2006, 17:05
hoe bedoel je precies :#
btw werkt het wel als ik een string return, maar niet een variabele. Die geeft undefined :S

Dauntless
%Europe/Berlin %713 %2006, 17:07
Geef het AS eens van dat undefined dingetje.

--
Wel, zo:

//Car.as
class Car
{
public function traceSomething():Void
{
trace("oy");
}
}

//en dan CarAI.as
class CarAI
{
private var myCar:Car;
public function CarAI(p_car:Car)
{
this.myCar = p_car;
this.myCar.traceSomething();
}
}

//in je fla
var car:Car = new Car();
var carAi:CarAI = new CarAI(car);

Sorry voor eventueele typfouten ;).

c0redump
%Europe/Berlin %713 %2006, 17:07
hmm...klinkt wat vaag wat je nu omschrijft.. kan je niet een heel klein UML diagrammetje ofzo geven, en aangeven wat je precies wilt doen...als ik t zo lees lijkt me dit voornamelijk een design issue...

Jordy
%Europe/Berlin %717 %2006, 17:13
public function traceIt() {
return carMCX // werkt niet
}

public function traceIt() {
return "Flashfocus!!"; //werkt wel
}

geeft geen foutmeldingen oid, het is bij iedere variabele die staat in de classe

Dauntless
%Europe/Berlin %719 %2006, 17:15
Bestaat carMCX wel? Geef eens alle relevante AS :).

Jordy
%Europe/Berlin %730 %2006, 17:31
Probleem opgelost ;), foutje in de *.fla

ik had:


carAi = new CarAi(this, carAiMC, 3, 2, myCar)
myCar = new Car(this, carMC);


en het moest

myCar = new Car(this, carMC);
carAi = new CarAi(this, carAiMC, 3, 2, myCar)


:D