PDA

Volledige versie bekijken : AS 3.0 omslachtig?


toadstool
%Europe/Berlin %923 %2007, 23:09
Hi guys,

ik heb al een aantal jaar ervaring met AS 2.0 en ben begonnen met het mezelf verdiepen in AS 3.0 omdat ik graag bij wil blijven. De eerste indruk die ik heb is dat alles zoveel omslachtiger is, omdat het lijkt dat je nu lappen code moet schrijven die je in AS 2.0 in enkele regels kon doen. Een voorbeeld hiervan is het moeten importen van elk dingetje dat je wil gebruiken, en daar gaat tevens mijn topic over.

Zo moet je bv flash.events.Event importen wanneer je events wil gebruiken en flash.display.Sprite wanneer je een sprite wil gebruiken. Heel logisch denkt het gros van de AS3.0 experts van jullie wellicht maar mijn frustratie hierbij is dat je toch nooit kan weten wat je moet importeren voor wat? Zo zie ik bv een flash.utils.clearInterval, moet ik deze importeren als ik intervals wil gaan gebruiken?

In AS 2.0 was dit allemaal niet nodig. Waarom moet dit in AS 3.0 wel? Ik heb al het een en ander over AS 3.0 gelezen en wellicht krijg ik het antwoord dat deze nieuwe versie van AS een 'echte' programmeertaal is ipv een scripting taal.

Mijn vraag is eigenlijk, hoe gaan jullie hiermee om? Hebben jullie in de help alle classes en methods zitten bekijken en in je hoofd gestampt? Zit je met deze lijst ernaast te programmeren? Maakt de compiler duidelijk wanneer je een import mist? Is het een kwestie van tijd en ervaring om te weten welke classes je moet importeren? Wat is een leidraad om te weten wat je moet importeren?

marcvz
%Europe/Berlin %926 %2007, 23:13
De compiler geeft het aan als je iets mist.
En dan kun je even in de help kijken wat je precies moet importeren.
Dingen die je veel gebruikt, blijven vanzelf hangen.

Dauntless
%Europe/Berlin %926 %2007, 23:14
Die dingen heten dus packages :). Een package is een manier om classes overzichtelijk te organiseren. Als al die classes in 1 en dezelfde package zouden zitten, zou je geen classes met dezelfde naam kunnen hebben. Het zou ook vrij chaotisch worden.

Als je in flex een variabele een bepaald datatype geeft, zet hij die import statement ook automatisch neer. Ik weet niet of dat ook bij de CS3 editor is, maar dat is alleszinds handig.

Uiteraard begin je niet gewoon met al die package namen vanbuiten te leren. Je zoekt gewoon op wat je nodig hebt (in de helpfiles), je kijkt vanboven in welke package die class staat en die import je dan. De classes die je vaak gaat gebruiken ga je dan snel onthouden (zoals bv de Sprite class), de anderen niet, maar aangezien je ze niet vaak gebruikt is dat ook niet erg :p.

De compiler zal je altijd een fout geven als hij een bepaalde class niet vind. Hij geeft spijtig genoeg wel geen oplossing (de compiler kan immers niet weten welke class je bedoelt aangezien er (door het gebruik van packages) meerdere classes met dezelfde naam kunnen zijn). Hij zal je gewoon zeggen: "Class or interface XXX not found".

Er bestaan ook cheat-sheets. Dat zijn afbeeldingen (of pdf's) met allemaal classes + hun methods, onderverdeeld per package. Google even naar AS3.0 cheatsheets en je zal er direct wel wat vinden.

toadstool
%Europe/Berlin %994 %2007, 00:52
Cool, van het bestaan van die sheets wist ik niet. Voor degenen die dit ook handig vinden hier wat linkjes naar dergelijke sheets:

AS 3.0 package overzicht
http://www.actionscriptcheatsheet.com/jpg/as3cs_packages.jpg

AS 3.0 Top level classes
http://actionscriptcheatsheet.com/downloads/as3cs_top_level.pdf
http://www.actionscriptcheatsheet.com/jpg/as3cs_toplevel.jpg

AS 2.0 naar AS 3.0 verschillen
http://www.actionscriptcheatsheet.com/downloads/as3cs_migration.pdf

Alles in een zipje
http://www.box.net/public/a94u9jjtyu

Thierry
%Europe/Berlin %122 %2007, 03:56
http://livedocs.adobe.com/flex/2/langref/

Neuro
%Europe/Berlin %353 %2007, 09:28
een erg goede vind ik deze
http://www.flex.org/download/AS3API_01.pdf

Ik heb hem afgedrukt en hij hangt in men werkruimte, zo kan ik onmidelijk zien wat ik moet importeren
http://www.neuroproductions.be/ff/classdia.jpg
erg handig, en een mooie toevoeging aan de chaos :)