Question

Notre application est écrite en ActionScript2 et compte environ 50 000 lignes de code. Nous voulons le porter sur ActionScript3 et nous essayons de savoir quelles sont nos options. Devons-nous le faire manuellement ou pouvons-nous utiliser un convertisseur et quels problèmes pouvons-nous nous attendre?

Était-ce utile?

La solution

J'ai posé une question similaire il y a un moment qui pourrait vous être utile:

Quelle est la meilleure approche pour déplacer un projet préexistant de Flash 7 / AS2 vers Flex / AS3?

Certaines tâches mineures peuvent être automatisables (la réparation des déclarations de paquet principalement), mais à part cela, je doute que cela puisse être automatisé.

Autres conseils

J'ai toujours eu du mal à passer de la conversion AS2 à AS3, principalement parce qu'il n'y a pas de script automatisé performant pour l'ensemble du processus et, franchement, c'est ennuyeux. À long terme, mettre à jour l'ancien code AS2 sur des projets toujours actifs et les mettre à jour eux-mêmes est une excellente idée, AS3 est tout simplement un meilleur langage et AVM2 est tout simplement plus rapide que AVM1.

Vous pouvez utiliser un script pour supprimer les traits de soulignement dans de nombreuses propriétés, ajouter les informations sur les packages, effectuer certaines importations de base, mais ce que j’ai trouvé est probablement le meilleur moyen pour moi de vider votre fichier principal. ou classe de gestionnaire dans la ligne de classe de document de votre fichier FLA, commentez tout sauf le constructeur et commencez simplement à convertir et à commenter au fur et à mesure. Cela peut sembler lent, mais j’ai l’impression que tenter de comprendre 40 erreurs différentes du compilateur à la fois puisse être plus lent.

Bonne chance, c'est un travail nécessaire, mais pas amusant.

Je ne pense pas que vous puissiez utiliser un convertisseur automatique pour cette tâche. Un convertisseur peut éventuellement vous sauvegarder certaines étapes ou indiquer les endroits où le changement doit avoir lieu, mais vous devrez parcourir le code manuellement.

Par exemple, une référence à _level0.variableName dans AS2 peut pointer vers un movieClip situé au niveau de _root, vers une FlashVar envoyée à partir du conteneur HTML ou vers un objet créé par le code lui-même. Il n'y a pas de véritable moyen de savoir. (Vous ne pouvez pas rechercher le nom de la variable dans le code car il peut également être calculé ou lu en externe.

Vous devez avoir une très bonne raison de faire une telle conversion. Si AS2 ne convient plus pour une raison quelconque, vous devriez peut-être essayer de résoudre le problème au lieu de le convertir en AS3 simplement parce qu’il a une jolie petite fonction dont vous avez besoin.

Certains sites en ligne permettent de convertir le code AS2 en code AS3. Mais selon mon expérience passée, ce n'était pas bon et résultat à 100%. Beaucoup de choses ont changé dans l'AS3. Vous pouvez donc automatiser certaines parties et la plupart d’entre vous le faites manuellement. Si vous avez utilisé _global dans AS2, vous pouvez déclarer une classe avec le nom "_global". qui contiendra des variables statiques qui utilisaient des variables _global.XXXX dans AS2.

Pensez à plusieurs façons de simplifier l'utilisation des fonctionnalités de programmation orientée objet. Je vous donne un exemple pour les variables globales ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top