Transcription de l'AS2 en AS3

davax Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 18 mai 2009 - 13 mai 2009 à 19:43
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 18 mai 2009 à 08:57
Bonjour,
Voici mon souci, j'ai crée il y longtemps, une animation flash en AS2. Tout marche, génial. Aujourd'hui je suis contraint de faire un Upgrade en AS3, car je dois intégré dans mon animation, de la 3D. Comme la 3D n'est géré que par l'AS3, j'ai essayer de passer par les méthodes loadMovie() ou autre car le fichier source est en AS2 qui essaye d'intégré d l'AS3. Donc la seul solution à mon problème serait de "convertir" mon code actuelle AS2 en AS3. Malgré mes tentatives depuis quelque semaine, je m'adresse à vous, si vous pouviez me le traduire. Elle ne fait que 40 lignes.

donc voici mon code.

// Recherche de profondeur valide
var profondeur_1:Number = new Number(1);
var pourcent_1:Number = new Number(0);
while(this.getInstanceAtDepth(profondeur_1) != undefined){
profondeur_1 ++;
}
// Intégration du Titre si il n'existe pas
if(this.getInstanceAtDepth(1000) == undefined){
this.attachMovie("Titre","titre",1000, {_x:75.0, _y:50.0});
}
// Intégration du Fond si il n'existe pas
if(this.getInstanceAtDepth(900) == undefined){
this.attachMovie("Lignes","Barre_Haut",900, {_x:30.0, _y:30.0});
this.attachMovie("Lignes","Barre_Bas",901, {_x:1250, _y:770.0, _rotation:180});
}
// Intégration du Menu si il n'existe pas
if(this.getInstanceAtDepth(800) == undefined){
_root.attachMovie("Menu","menu",800, {_x:103.0, _y:532.0});
}
// Intégration des Loader pour l'Image de Gauche
this.attachMovie("Loader","photo_1", (profondeur_1+1), {_x:103.7, _y:192.4, _height:273.0, _width:200.0, _alpha:0.0, contentPath:"Images/photo.jpg"});
this.attachMovie("ProgressBar", "progress_photo_1", profondeur_1, {_x:128.7, _y:313.9, _alpha:100.0, source:photo_1});
// Au cour du Chargement
this.onEnterFrame = function(){
if(progress_photo_1.percentComplete == 100 || pourcent_1==100){
if(photo_1._alpha !=100){
photo_1._alpha += 5;
pourcent_1=100;
if(this.getInstanceAtDepth(profondeur_1)){
progress_photo_1.removeMovieClip();
}
}
}
}
// Pause
stop();

------
Menu_1.onPress = function(){
_root.gotoAndStop("Home");
_root.photo_2.removeMovieClip(); _root.progress_photo_2.removeMovieClip();
_root.photo_3.removeMovieClip(); _root.progress_photo_3.removeMovieClip();
_root.photo_3_1.removeMovieClip(); _root.progress_photo_3_1.removeMovieClip();
_root.photo_3_2.removeMovieClip(); _root.progress_photo_3_2.removeMovieClip();
_root.photo_3_3.removeMovieClip(); _root.progress_photo_3_3.removeMovieClip();
_root.Sub_1.removeMovieClip(); _root.Sub_2.removeMovieClip();
}
Menu_2.onPress = function(){
_root.gotoAndStop("Expo");
_root.photo_1.removeMovieClip(); _root.progress_photo_1.removeMovieClip();
_root.photo_3.removeMovieClip(); _root.progress_photo_3.removeMovieClip();
_root.photo_3_1.removeMovieClip(); _root.progress_photo_3_1.removeMovieClip();
_root.photo_3_2.removeMovieClip(); _root.progress_photo_3_2.removeMovieClip();
_root.photo_3_3.removeMovieClip(); _root.progress_photo_3_3.removeMovieClip();
_root.Sub_1.removeMovieClip(); _root.Sub_2.removeMovieClip();
}
Menu_3.onPress = function(){
_root.gotoAndStop("Contact");
_root.photo_1.removeMovieClip(); _root.progress_photo_1.removeMovieClip();
_root.photo_2.removeMovieClip(); _root.progress_photo_2.removeMovieClip();
}

Donc voila, si quelqu'un pouvait me sauver de mon désespoir je lui en serait extrémement reconnaissant.
Merci d'avance.
David

6 réponses

davax Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 18 mai 2009
13 mai 2009 à 19:47
Mon code est mal passer :


// Recherche de profondeur valide

var profondeur_1:Number = new Number(1);

var pourcent_1:Number = new Number(0);

while(this.getInstanceAtDepth(profondeur_1) != undefined){

profondeur_1 ++;

}

// Intégration du Titre si il n'existe pas

if(this.getInstanceAtDepth(1000) == undefined){

this.attachMovie("Titre","titre",1000, {_x:75.0, _y:50.0});

}

// Intégration du Fond si il n'existe pas

if(this.getInstanceAtDepth(900) == undefined){

this.attachMovie("Lignes","Barre_Haut",900, {_x:30.0, _y:30.0});

this.attachMovie("Lignes","Barre_Bas",901, {_x:1250, _y:770.0, _rotation:180});

}

// Intégration du Menu si il n'existe pas

if(this.getInstanceAtDepth(800) == undefined){

_root.attachMovie("Menu","menu",800, {_x:103.0, _y:532.0});

}

// Intégration des Loader pour l'Image de Gauche

this.attachMovie("Loader","photo_1", (profondeur_1+1), {_x:103.7, _y:192.4, _height:273.0, _width:200.0, _alpha:0.0, contentPath:"Images/photo.jpg"});

this.attachMovie("ProgressBar", "progress_photo_1", profondeur_1, {_x:128.7, _y:313.9, _alpha:100.0, source:photo_1});

// Au cour du Chargement

this.onEnterFrame = function(){

if(progress_photo_1.percentComplete == 100 || pourcent_1==100){

if(photo_1._alpha !=100){

photo_1._alpha += 5;

pourcent_1=100;

if(this.getInstanceAtDepth(profondeur_1)){

progress_photo_1.removeMovieClip();

}

}

}

}

// Pause

stop();


-----


Menu_1.onPress = function(){

_root.gotoAndStop("Home");

_root.photo_2.removeMovieClip();
_root.progress_photo_2.removeMovieClip();

}
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
13 mai 2009 à 19:52
Bonsoir,

Ta demande me dérange par le fait de demander de faire quelque chose à ta place. Ce qui n'est pas la politique de la maison ...

Donc moi je te propose de nous montrer le résultat de tes tentatives de ce quelques semaines et nous essaierons de te le corriger. Ce qui rentre plus dans le cadre de ce forum d'entraide.

Peg'
0
cs_jzeel Messages postés 156 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 10 mars 2011
13 mai 2009 à 23:09
Bonsoir,



Je suis un peu d'accord avec Peg... je me suis tapé tous le livres de AS3, après tous ses efforts je me vois donner de la viande toute faite sans effort de la part de celui qui reçoit.



Par contre je vais te donner des indices dans ton code et tu pourra le verifier par toi-même en travaillant de ton coté...

1) getInstanceAtDepth : N'existe plus c'est getChildAt qui te permet d'accéder à un objet enfant placé à index spécifique.



2) Oublie attachMovie, approche est differente on utilise new 
      ex: var maVariable:nomOccurence = new nomOccurence;
             ensuite utilise addChild pour la'afficher sur la scène;

3) _x ou _y pour le positionnement n'est plus. C'est simplement x et y retire le '_'

4) onEnterFrame n'existe plus c'est event.ENTER_FRAME

5) _alpha n'estplus. C'est alpha sans le '_'

6) removeMovieClip() est mort maintenant c'est removeChild... mais attention l’appel de cette méthode procède à une simple suppression du DisplayObjectau sein de l’affichage mais ne le détruit pas, pour se faire il faut ajouter une ligne ou tu met ton Clip égal à null.

Si j'en n'ai manqué que quelqu'un me corrige s.v.p... Maintenant que je t'ai donné les indices, à toi de travailler et faire tes recherches pour savoir comment les utiliser avec leur syntaxe propre... et voici un lien qui pourrait t'aider http://wiki.mediabox.fr/tutoriaux/flash/pratique_as3


Bonne chance,

Jzeel
0
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
14 mai 2009 à 20:58
Salut

jzeel : je rajoute quelque chose dans le 6 : ne pas oublie de dereferencer tous les membres du clip a detruire aussi et surtout, surtout les removeListener ..... :) car beaucoup n'utilise pas les references faibles.

7)toujours dans la meme logique,
 _root devient root
_height devient height
_width devient width

Bonne continuation, et bienvenue aux autres rectificatifs.

http://liveplayaz.com

je suis heureux de faire partie d'une grande famille ...!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
davax Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 18 mai 2009
18 mai 2009 à 08:38
Merci pour vos réponse, j'ai enfin réussis à tout convertir en AS3 sans trop de bug. Si cela vous intéresse de voir le produit finis. Je vous invite à aller sur :

http://s264866360.onlinehome.fr/Loire/
Bonne Journée à Tous
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
18 mai 2009 à 08:57
Tu as un décalage dans le carrousel 3D (le miens en l'occurrence) lors du clic sur les images en grand. Ensuite ce n'est pas parce que j'ai mis la source à dispo qu'elle est utilisable sans mon consentement ...

Peg'
0
Rejoignez-nous