Volledige versie bekijken : as3 -> as2 (flash lite 3)
slickshots
%Europe/Berlin %405 %2010, 10:43
Hi all,
Wellicht een stomme vraag, maar ik wil een as3 project omzetten naar as2 (flash lite 3.0/3.1). In feite moet ik het nog bouwen, maar ik wil graag blijven werken in een as3 omgeving, zonder weer te duiken in die oude as2 code en hoe dat allemaal weer ging.
Ik heb al redelijk gegoogled, maar kwam niks tegen wat mijn project zou kunnen omzetten.
Bestaat dit uberhaubt?
jaspermuts
%Europe/Berlin %423 %2010, 11:09
Je zult het toch grotendeels handmatig moeten omzetten.
AS3 is niet gemaakt om alleen maar dezelfde functies als AS2 in een andere syntax te hebben. Er zijn functies die compleet anders werken (met name de display list) en sommige functies en classes bestaan helemaal niet in AS2, dus het kan zijn dat je zelf nog nieuwe functies moet schrijven om hetzelfde te bereiken. Als je het echt vaak nodig gaat hebben kun je natuurlijk nog googlen of er AS2 classes bestaan die hetzelfde werken als hun AS3 equivalent.
Er zijn wel een paar handige documenten en overzichten over migratie van AS2 naar AS3 (die moet je dus andersom lezen)
http://www.adobe.com/devnet/actionscript/articles/as3_migration_cookbook/as3_migration_cookbook.pdf
http://help.adobe.com/en_US/AS3LCR/Flash_10.0/migration.html
slickshots
%Europe/Berlin %425 %2010, 11:12
Dank je wel Jasper, daar was ik al bang voor, maar hoopte stiekem op een "automatic degradation". :)
jaspermuts
%Europe/Berlin %496 %2010, 12:54
Het zou idd wel handig zijn in sommige gevallen, een tool die bijv weet dat dinges.addEventListener(Event.ENTER_FRAME, handler); veranderen moet naar dinges.onEnterFrame = handler;Maar daar merk ik al direct een probleem: in AS3 kun je zoveel listeners voor Event.ENTER_FRAME toevoegen als je wil en in AS2 maar 1.
dinges.addEventListener(Event.ENTER_FRAME, handler);
dinges.addEventListener(Event.ENTER_FRAME, handler2);
zou dan dus moeten veranderen naar iets als
// Open een lijst voor enter frame handlers
dinges.onEnterFrameHandlers = new Array();
// Loop alle onEnterFrame handlers af en roep ze aan
dinges.onEnterFrame = function()
{
for(var i:Number = 0; i < this.onEnterFrameHandlers._length; i++)
{
this.onEnterFrameHandlers[i]();
}
}
// 'addEventListener'
dinges.onEnterFrameHandlers.push(handler1);
dinges.onEnterFrameHandlers.push(handler2);
Even ter illustratie waar je bij simpele dingen al tegenaan kunt lopen ;)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.