PDA

Volledige versie bekijken : Welke interface extenden?


ClarkNova
%Europe/Berlin %705 %2007, 17:55
Hallo Allemaal,

ik probeer een decorator pattern toe te passen (dankzij het boek Advanced AS3 with Design Patterns) en loop nu tegen iets aan..

Ik heb een interface gecreeerd (IElement) met wat extra methods en gebruik deze voor mijn classes. Deze classes extenden allemaal Sprite.
Even simpel gezegd doe ik bijv:

var myBlock:Element = new Element();
addChild(myBlock);

Dit werkt, maar nu wil ik achter standaard sprite properties komen zoals bijv. parent, x, y, width en height.
Als ik in de interface dit toevoeg:

function get parent():DisplayObjectContainer;

werkt trace(myBlock.parent); al correct zonder dat ik implementaties hoef te schrijven.
Om nou mijn eigen interface helemaal uit te breiden met allemaal get functies lijkt me wat onnodig en arbeidsintensief.

Bestaat er een ISprite interface oid die ik kan extenden?

Dank!

TheDutch
%Europe/Berlin %722 %2007, 18:20
Bestaat niet, moet je zelf maken :).

Tommyfied
%Europe/Berlin %803 %2007, 20:16
Het boek zelf legt dit helemaal uit hoor.

Ze gebruiken juist abstracte class ipv een interface in deze specifieke situatie om dat probleem te omzeilen. Lees het hoofdstuk nog maar eens na ;)

BernardV
%Europe/Berlin %831 %2007, 20:57
Dat zal ook helemaal waar zijn wat TommyField aangeeft, een class extend je namelijk en een interface implement je. Je kunt geen interface extenden..

ClarkNova
%Europe/Berlin %012 %2007, 01:18
Mmmm jammer.

Maar een interface kan je wel extenden met een andere interface.
En het leek me zo handig omdat ik niet eens implementaties hoef te maken, ik hoef alleen een get blabla() functie in de interface te zetten en het werkt al.

Maargoed, dan maar een lijst met getters en setters.

Iig bedankt

TheDutch
%Europe/Berlin %276 %2007, 07:38
Je kunt geen interface extenden..
Interfaces kan je wel extenden hoor. In Flex Builder krijg je daar weliswaar de optie niet voor maar wanneer je het met de hand codeert dan werkt het prima :).

BernardV
%Europe/Berlin %386 %2007, 10:16
Interfaces kan je wel extenden hoor. In Flex Builder krijg je daar weliswaar de optie niet voor maar wanneer je het met de hand codeert dan werkt het prima :).

Ik zei het ook verkeerd.. je kunt niet met een interface extenden, die moet je implementeren.
Het is logisch dat je in je interface een extend op kunt geven.