PDA

Volledige versie bekijken : referentie naar mijn MC op de stage?


vic76
%Europe/Berlin %829 %2008, 19:53
Hallo!

Ik loop vast met het een referentie naar mijn MC op de stage:

Op mijn stage heb ik een movieclip staan met de instancename 'widget'.
In mijn documentclass maak ik een referentie naar deze MC, zodat ik er later wat mee kan doen:


var _widget:WidgetUserInteraction = new WidgetUserInteraction(widget);
addChild(_widget)


In de class 'WidgetUserInteraction ' staat niets anders dan deze constructor:


public var _widget:MovieClip;

public function WidgetUserInteraction(widget)
{
_widget = widget;
}


Werkt als een tierelier, maar nu bestaat mijn applicatie uit meerdere classes, en ik wil in 1 van mijn classes, die _widget uit de WidgetUserInteraction class weer aanspreken...

Ik wil bijvoorbeeld het volgende kunnen doen in de class Test:

_widget.alpha = 0.2;

Maar hoe?
Ik heb al geprobeerd de Test class te extenden met WidgetUserInteraction,
maar niets werkt?

Kan iemand mij een beetje adviseren?
Thnx!

Vic.

theFlashWizard
%Europe/Berlin %865 %2008, 20:46
Wat is de verantwoordelijkheid van de WidgetUserInteraction class eigenlijk?

Het ligt eraan hoe je dit oplost. Zou de class die dan wat met widget moet doen (en die "naast" WidgetUserInteraction staat een referentie moeten hebben naar WidgetUserInteraction.
WidgetUserInteraction zou dan deze methods door moeten verwijzen.

Maar aangezien ik niet weet waarom (oorzaak, doel) je de alpha wilt aanpassen en wat de bedoeling is van WidgetUserInteraction kan ik hier eigenlijk geen goed advies over geven.

Een algemeen erg goede manier van dit soort communicatie sturen is het werken met het Model View Controller (MVC) design pattern.

Actionscript Tutorials -> Design patterns (http://www.flashfocus.nl/forum/showthread.php?t=6338#design patterns)
Actionscript Tutorials -> OOD (http://www.flashfocus.nl/forum/showthread.php?t=6338#ood)
Actionscript Tutorials -> OOP (http://www.flashfocus.nl/forum/showthread.php?t=6338#oop)

vic76
%Europe/Berlin %588 %2008, 14:07
De WidgetUserInteraction Class gaat later user interacties afhandelen, zoals: draggen van de applicatie, sluiten van de applicatie, etc.

Nu is het zo dat ik ook classes heb die enkel XML parsen en de data in een array stoppen. Denk hierbij aan een achtergrond image die ik via een Loader object load.

Nu moet ik dit gelaade plaatje in die widget MC zien te krijgen, maar daarvoor moet ik wel bij _widget:MovieClip; (zie WidgetUserInteraction class) komen...

Hoop dat het iets duidelijker is?
Mvgr,

Vic.

theFlashWizard
%Europe/Berlin %681 %2008, 16:20
De WidgetUserInteraction Class gaat later user interacties afhandelen, zoals: draggen van de applicatie, sluiten van de applicatie, etc.
Je geeft hierbij een class meerdere verantwoordelijkheden en je handelt dit soort acties niet per object of object onafhankelijk af. Dit is dus niet de correcte Object Georienteerde aanpak.

Wil je iets draggen dan moet je iets van een Draggable class maken bijv. Deze kan dan een Sprite / Shape extenden of deze kan een DisplayObject decoreren (Decorator design pattern).

Ook dat je het laden nu weer loskoppeld van het object is niet OOP. Het is netter als het object zelf een Image class is bijv. Of dat de class zelf ergens vandaan ingeladen BitmapData haalt. (Vanaf een Singleton bijv.)