begin process at 2012 05 27 15:59:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Flash

 > 

Archives

 > 

Divers

 > 

Quelques conseils pour simplifier1 ou deux fonctions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Quelques conseils pour simplifier1 ou deux fonctions

vendredi 27 janvier 2006 à 22:32:07 | Quelques conseils pour simplifier1 ou deux fonctions

fanfouer

Membre Club
Bonsoir,
Je continue a developper mon sujet et je me rend conte que mon code prend beaucoup de lignes pour ce qu'il permet de faire...
C'est pourquoi je laisse deux ou trois fonctions en dessous pour que si quelqu'un a le temps, me dise si il y a pas une maniere plus simple d'ecrire ces dernieres. Bonne lecture!


/*FONCTION = "gestionCorePoste"

=>input : Poste : Le nom du poste surlequel la manoeuvre doit etre effectuée ; core : Niveau du core a verfier

=>fonction : A chaque execution de la fonction, on creer les liste des circuit rataché a tel ou tel core du poste et on affecte l'affichage du poste en conséquence (si aucun circuit sur un core, on desactive celui-ci)

=>output : none

*/

function gestionCorePoste (Poste){

PosteCircuit_Array_core2 = _root.DefineLinks(Poste, 2, undefined);//array avec les circuits du core2

PosteCircuit_Array_core3 = _root.DefineLinks(Poste, 3, undefined);//array avec les circuits du core3

//On verifie qu'il reste au moin 1 circuit sur chaque core sinon on les efface

            if (PosteCircuit_Array_core2.length == 0){

                        eval("_root.carte."+Poste).Niv2_core._visible = false;

                        eval("_root.carte."+Poste).coreCharge[2] = 0;

            }else{

                        eval("_root.carte."+Poste).Niv2_core._visible = true;

}

            if (PosteCircuit_Array_core3.length == 0){

                        eval("_root.carte."+Poste).Niv3_core._visible = false;

                        eval("_root.carte."+Poste).coreCharge[3] = 0;

}else{

                        eval("_root.carte."+Poste).Niv3_core._visible = true;

}

}


Celle la, il y a un petit probleme, lorsque la derniere condition est vraie (chargeCircuit > limiteChargeCircuit), et ben il m’arrete la boucle dès le premier passage ! je ne comprend pas pourquoi ca fait ca… a vous de toruvé si vous y arrivez

/*FONCTION = "Aleas_reportCharge",

=>input : Circuit_Array : L'array du circuit

=>fonction : Cette fonction applique un report de charge : lorsqu'un circuit déclenche, la charge qu'il fesait trnasiter est équitablement répartie entre tous les circuits restant raccordé au poste amont

=>output : none

*/

function Aleas_reportCharge (Circuit_Array){

PosteCircuit_Array = _root.DefineLinks (Circuit_Array[0].posteArrivee, Circuit_Array[0].coreArrivee, "arrivee");

            //Premiere partie : definition d'un listing provisoire des circuits touchés par le report de charge

            PosteCircuit_Array_length = PosteCircuit_Array.length;

AjoutCharge = Math.round(eval("_root.carte."+Circuit_Array[0].nom+"_ligne1").charge/(PosteCircuit_Array_length -1))

            for(i=0;i<PosteCircuit_Array_length;i++){

                        if (PosteCircuit_Array[i].nom != Circuit_Array[0].nom){

                                   eval("_root.carte."+PosteCircuit_Array[i].nom+"_ligne1").charge += AjoutCharge

chargeCircuit = eval("_root.carte."+PosteCircuit_Array[i].nom+"_ligne1").charge;

                                   limiteChargeCircuit = eval("_root.carte."+PosteCircuit_Array[i].nom+"_ligne1").limiteCharge

                                   if (chargeCircuit > limiteChargeCircuit){

Circuit_Array_surcharge = _root.defineCircuitName (PosteCircuit_Array[i].posteDepart, PosteCircuit_Array[i].posteArrivee, PosteCircuit_Array[i].numCircuit);

                                               _root.Aleas_surcharge (Circuit_Array_surcharge, "20");

}

}

}

}


Ce n'est que deux fonction de mon code, les deux qui me paraissait les moin bine optimisée en fait donc si vous pouviez y faire quelque chose, ce serait simpas... merci!!

vendredi 27 janvier 2006 à 22:54:52 | Re : Quelques conseils pour simplifier1 ou deux fonctions

fanfouer

Membre Club
Autre exemple encore plus bete : j'ai fait deux fois la meme chose et j'aimerai rassembler tout ça :

PosteCircuit_Array_core2 = _root.DefineLinks(Poste, 2, undefined);//array avec les circuits du core2
 PosteCircuit_Array_core3 = _root.DefineLinks(Poste, 3, undefined);//array avec les circuits du core3
 if (PosteCircuit_Array_core2.length == 0){
  eval("_root.carte."+Poste).Niv2_core._visible = false;
  eval("_root.carte."+Poste).coreCharge[2] = 0;
 }else if (PosteCircuit_Array_core2.length == 1 and coreLevel == 2){
  _root.Aleas_declenchement(Circuit_Array);
 }else{
  eval("_root.carte."+Poste).Niv2_core._visible = true;
 }
 if (PosteCircuit_Array_core3.length == 0){
  eval("_root.carte."+Poste).Niv3_core._visible = false;
  eval("_root.carte."+Poste).coreCharge[3] = 0;
 }else if (PosteCircuit_Array_core3.length == 1 and coreLevel == 3){
  _root.Aleas_declenchement(Circuit_Array);
 }else{
  eval("_root.carte."+Poste).Niv3_core._visible = true;
 }
vendredi 27 janvier 2006 à 23:16:52 | Re : Quelques conseils pour simplifier1 ou deux fonctions

SuperDevy

Membre Club
Réponse acceptée !
Quelques petits conseils :
  1. Remplace les eval("_root.carte."+Poste) par _root.carte[Poste], c'est sémantiquement meilleur, et plus facile à comprendre et à interpréter pour FlashPlayer.
  2. Utilise des noms de variables plus courts : proscrit les _.
    Tu peux par exemple remplacer PosteCircuit_Array_core3 par pcCore3.
  3. Lit ça : Pourquoi ne pas utiliser _root ?
  4. Dans tex expressions logiques, remplace and par && et or par ||
Voila, c'est déjà pas mal... Bon courage :)

SuperDevy, c la !
vendredi 27 janvier 2006 à 23:50:39 | Re : Quelques conseils pour simplifier1 ou deux fonctions

fanfouer

Membre Club
Merci pour tous ces conseils et je trouve pas mal le truc du _root.carte[poste], ca raccourci pas mal.
Pour ce qui est de "_root", deja je ne connaissait pas le site et celui la je le garde en favoris mais je ne peut ma passer de ca car tous le code est dans une fonction, et est par conséquent executé dans divers points du programme, a des niveaux differants avec des clip parents differants. Je ne peut donc pas mettre de chemin relatifs dans un code qui n'est pas executé dans le meme clip tout le temps.
En ce qui concerne le nommage de mes variables, il est un peu long c'est vrai et je pensait donner a mes variables une identité facile a reconaitre si je donnait un nom assé detaillé. Par exemple, le suffixe _Array me sert a identifier les Array dans la code.
Ainsi, le Circuit_Array récurent tout au long du scritp veu tout de suite dire quelque chose pour moi.

Encore merci en tout cas


Cette discussion est classée dans : poste, array, root, circuit, postecircuit


Répondre à ce message

Sujets en rapport avec ce message

pb DataGrid [ par phiphou ] Bonjour à tous,Bon j'utilise le composant datagrid pour afficher une liste de mails avec les champs De, Sujet, Date...Voici le code : ---------------- fonction [ par stefbuet ] Salut :)Je fait passer à flash pa la page plusieurs variablesnombre -> le nb d'inscrit sur mon sitenom -> un array avec tt les nom des inscritscoordx créer un XML [ par faris68 ] Salut à tous,Je voudrais pouvoir créer un fichier XML avec Flash comme celui-ci: <?xml HitTest et array, comment automatiser ce code pour un jeu ? [ par tripounet ] Bonjour, Je développe un petit jeu en as2 et j'aimerai savoir comment automatiser ce genre de requête : [code=as]var OT1:Array = new Array(_root.Obsta Déplacement d'un clip déjà en interpolation [ par bibin06 ] Bonjour, je débute en AS :) et je suis en train de créer un diaporama défilant avec des clips (sans image à charger). J'ai créé dans un premier temps setInterval() pour diaporama qui ne lance l'action qu'une seule fois :( [ par BBFUNK01 ] Bonsoir tout le monde, je suis en train d'arriver au bout de la réalisation de mon diaporama perso, et il me reste un point à terminer : le mode "Sli Problême avec lecteur MP3 [ par Homan89 ] Bonjour voilà j'ai un petit problême, pour mon site j'ai pris un flash lecteur de mp3 sur le site à l'adresse suivante : http://www.flashkod.com/code Calcule d'une vitesse à partir d'un timer [ par pfranc51 ] Bonjour, je souhaite calculer une vitesse moyenne à partir de différentes données, mon code est le suivant: } if(!_global.isTimerStarted) { _glob AS2 Array vers ComboList [ par jaheye ] Bonjour à tous, J'ai un petit problème, je me trouve avec un array que je veux passé dans le composant comboList, j'y arrive mais les problèmes c'est Comment remplir une table actionscript (Flash CS4) ? [ par jytest ] Bonjour, Je débute en actionscript (pour flash CS4). Je n'arrive pas à remplir les tableaux - "gallery_name", pour les , et - "gallery_file", pour le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales