Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2008, 02h06   #1
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Par défaut migration as2 vers as3 : quelle est la meilleure façon de faire

Bonjour à tous!!

J'ai déjà fait pas mal de sites en as2 et en as3.

Par contre c'est la première fois qu'un client me demande de migrer un site de as2 vers as3.

J'ai tendance à penser qu'il faut tout refaire (enfin si on veut être propre )mais je demande à ceux qui ont déjà été confronté au problème de me conseiller sur la meilleure façon de faire.


Merci à tous de vos retours d'expérience
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 08h41   #2
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
C'est une operations lourde et si tout était en class avec des modules indépendant sa sera rapide a faire la transitions vers as3 sinon si comme de nombreux site as2 c'était un foutoir monstre , bah ...

En effet dans le second cas il faudrait refaire de maniere brute en faisant une simple 'traduction' ou une refonte complète.

Au fait tu lui as dit que sa servait a rien de faire ce genre d'opération a ton client ? Sauf si le site disposé n'enorme effet speciaux ou qu'il souffrait de gros ralentissement.

Good Luck
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 09h48   #3
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Merci de ta réponse;

en fait je ne vois ce client que mardi et je ne sais pas encore pourquoi il souhaite faire cette migration.

Merci de ton conseil
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 11h41   #4
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Salut IP-Fix

Je viens de voir mon client; en fait il doit le faire car il doit forcement converser avec d'autres modules Flash qui sont en as3.

Y a-t-il déjà un logiciel qui permet de traduire déjà les choses de base? ou pas? ; ?
Le reste ce sera à repenser. Mais heureusement il y a beaucoup de classes donc codé assez proprement.

T'as de conseils à me passer?
Merci!!
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 12h17   #5
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
Aucun logiciel ne fais de traduction automatique.

Le seul conseil que je peux te donner c'est d'être propre et orienté Objet dans ta façon de coder. Après malheureusement pas de formule miracle

hésite pas a remanier des choses et a te faire un schéma ( ou un uml pas trop formel ) sur papier histoire de voir s'il y a pas des choses que tu pourrais améliorer avec l'as3.

Code beaucoup de class et profite de l'heritage a fond , c'est rapide et sa coute pas cher

Bonne chance.
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 12h25   #6
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Merci de tes conseils.
ton "bon chance" tombe bien ....

chau
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 06h06   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 10
Points : 10
Un petit programme qui fait une "traduction" AS2 vers AS3 :
http://www.5etdemi.com/convert/index.php
C'est bien pratique !
Tony-b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 09h14   #8
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Merci je vais tester ça car heureusement j'ai beaucoup de classes (l'actionscript 2 était assez propre). ça va me permettre d'éviter de faire de copier / coller répétitifs

merci encore
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 15h55   #9
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Tony-b

cet outil de conversion est d'une grande utilité!!!! merci!

cepedant j'avais cru comprendre que des choses du genre _root ne fonctionnent plus sur as3.

Désolée ce n'est pas moi qui est créé les classes et bien que j'aime pas du tout le _root, il a été utilisé dans les classes que je dois convertir.

Suffit-il de l'enlever? ou il faut que je place root sans le _??

Voici un exemple d'une courte méthode:

Code :
1
2
3
4
5
6
7
public function uiMenuArrowUpPress():void{
	trace("TemporaryBasalRate.uiMenuArrowUpPress()");
 
	_root.pumpSounds.playSound("sound_D20");
	_root.pumpStateManager.movePreviousState(this);
 
		};
donc qui appelle une fonction se trouvant sur le premier niveau du stage.

quelle est la bonne façon de faire?

merci encore
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 16h09   #10
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
je reviens car je me trouve avec de choses du genre:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
//****************************************************************************
	//Events Mechanisim	
	//****************************************************************************
		public var addEventListener:Function;
		public var removeEventListener:Function;
		protected var dispatchEvent:Function;	
 
 
		//Constructor
		public function ConfigAPI(){
			trace("ConfigAPI Constructor");
 
			//Init Event Mechanisim
			mx.events.EventDispatcher.initialize(this); 
 
			buttonsToIgnore = new Array();
 
 
		}
....mmmhhhh les events étant gérés maintenant au niveau de tout objet.... je crains que j'ai pas mal de boulot pour retirer ceci de mes classes et faire une gestion as3 des events

quel conseil?? merci!!
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 16h50   #11
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Je crois que le mieux c'est que je passe au constructeur de ma classe le stage, comme ça je peux appeller les méthodes qu'il faut des classes ayant été créées sur le stage (disons sur le premier niveau)

de même pour les events ; disons que si je garde mon stage dans une variable de la classe que je nomme _stage :

Code :
_stage.addEventListener(Event.ENTER_FRAME, frameUpdateHandler);
je peux gérer mes add et remove Events


Pour des nouveaux events je dois créer mes classes qui étendent Event et MouseEvent comme ceci:

Code :
1
2
private var eventEvent:Class = VirtualMouseEvent;
		private var mouseEventEvent:Class = VirtualMouseMouseEvent;

Bon je vous raconte ceci pour que vous me confirmiez si c'est un bon choix et pour que ce post puisse servir à d'autres.

chau
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 00h51   #12
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Salut

En fait dans l'appli as2 que je dois migrer j'ai le souci suivant:

- pas mal de clip directement sur la scène donc avec un nom d'instance ex: clip_mc

- puis pas mal de classes as2 qui font de références du genre _root.clip_mc


Bon, je suis un petit peu desesperée car je ne sais pas trop comment faire.

1: Dois-je supprimer le nom de l'instance puis le remplacer par
var clip_mc:ClipMC = new ClipMC()? pour pouvoir avoir accès depuis les classes as3???

HELP please!!!
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 02h31   #13
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Beeen, ça ne marche pas

COMMENT ACCEDER DIRECTEMENT A UN CLIP DEPOSE SUR LA SCENE (DONC PAS CREE DINAMYQUEMENT) DEPUIS UN CLASSE


je me sens bête car ça ne devrait pas être trop compliqué;

instance_mc du clip sur la scène

puis var niania:MaClasse = new MaClasse();

et dans MaClasse.as je souhaite accéder à instance_mc.

j'ai essayé:
root.instance_mc
stage.root.instance_mc
instance_mc

AUCUN NE MARCHE

j'ai décidé de passer mon clip en paramètre à la classe mais je ne crois pas que ce soit la soluss...

Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 09h46   #14
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
salut;
dans ce que tu as ecris; et si je ne me trompe pas; tu devrais cibler tes clips
tu dis :
Citation:
puis var niania:MaClasse = new MaClasse();

et dans MaClasse.as je souhaite accéder à instance_mc.
donc
en ciblant sa serait

this.parent.instance_mc;
reste du code .......
(ensuite ect ect ect....) dans ta class
essaye le ... sinon une autre personne aurra une autres piste
tu vois en gros le principe..
si scene.clip1.clip2.clip3
alors this.parent.parent.clip3;(si je dis pas de betise)
jamais root..
a bientot
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h08   #15
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
salut et merci

le problème c'est que this dans une classe fait référence à la classe et pas au contexte.

finalement j'ai décidé de passer this en paramètre (le this de l'anim donc) et mes anciens _root encapsulent le this que je reçois

var niania= new MaClasse(this)

et dans MaClasse(monthis:Object) je fais

_root = monthis;

et comme ça je ne casse pas trop les classes as2 que je dois migrer.

Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 07h03   #16
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
salut,
ok pour pour l'analyse;
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2008, 18h29   #17
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
rebonjour,
c'est mieu ainsi:
this.parent.parent.["clip3"];
as3 prefere mieux cette ecriture.
complement au post.
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h02.


 
 
 
 
Partenaires

Hébergement Web