Hello :)

les caractères de saut de ligne dans la norme ECMAScript il y en a un peu
plus que le simple \n :

"\u000A", "\u000D", "\u2028", "\u2029"


Essai d'autres caractères ( \r etc.) et ensuite fait un test à part sur une
chaine simple pour énumérer le contenu des codes UTF8 des caractères
dedans... tu peux t'inspirer de ma classe JS/SSAS UnicodeChar pour trouver
les caractères de sauts de lignes ou les esapces :

http://code.google.com/p/vegas/source/browse/SSAS/trunk/src/src/vegas/string/UnicodeChar.asc

EKA+ :)


Le 20 janvier 2010 00:21, samuel <[email protected]> a écrit :

> Bonsoir tout le monde,
> j'essaie de sortir tous les textes d'un fla avec un jsfl afin de le rendre
> traductible mais j'ai un problème pour détecter les saut à la ligne.
> j'ai essayer \n et \u000A mais je ne les détecte pas, est-ce que vous savez
> comment je pourrai les détecter ? merci
>
> p.s. je met le code au cas où àa vous inspire ou si vous voyez une
> meilleure solution elle est biensûr bien venue, le fla est en as tout simple
> vu qu'à la base il n'y avait que 3 boutons à gérer
>
> // variables
> var oDES
> var oDOM
> var oLIB
> var nbTexts
> var extractedTexts = [];
>
> // boucle principale
> function run(){
>     nbTexts = 0;
>     fl.outputPanel.clear();        // nettoie la fenetre output
>
>     oDOM = fl.getDocumentDOM();        // référence au fla actuel
>     oTML = oDOM.getTimeline();        // référence à la timeline de la
> scène
>     oLIB = oDOM.library;            // référence à la bibliothèque
>     oTML.layers[0].frames[0].actionScript += "\nLocalisation = {get :
> function(str){ trace(str);}};\n";
>     parseTl(oTML);    // parse la timeline
>     parseLib();        // parse la bibliothèque
>
>     fl.trace(nbTexts+"  texts found.");
>     fl.trace(extractedTexts.join("\n"));
> }
>
> // parseur de timeline
> function parseTl(oTimeline){
>     // parcourt les calques de la timeline
>     for(var layer in oTimeline.layers){
>         // parcourt les frames du calque
>         for(var i=0 ; i<oTimeline.layers[layer].frames.length ; i++){
>             // parcourt les éléments de la frame
>             for(var e=0 ;
> e<oTimeline.layers[layer].frames[i].elements.length ; e++){
>                 var oElement =
> oTimeline.layers[layer].frames[i].elements[e];
>                 var text = '';
>                 if(oElement.elementType=='text'){
>                     // si élément text, remplace le texte
>                     if (oElement.getTextString().indexOf('@_')!==0){
>                         text =
> oElement.getTextString().split("'").join("\\'").split("\u000A").join("\\u000A");
>                         extractedTexts.push(text);
>                         oElement.textType = 'dynamic';
>                         oElement.setTextString('@_' +
> oElement.getTextString());
>                         //pas de nom, obliger d'en donner un
>                         if(!(oElement.name.length > 0)){
>                             oElement.name = 'namesbyext'+nbTexts;
>                         }
>                         oTimeline.layers[layer].frames[i].actionScript +=
> "\n "+oElement.name+".text = Localisation.get('"+text+"');\n";
>                         nbTexts++;
>                     }
>                 }
>             }
>             // avance dans les frames
>             var nDur = oTimeline.layers[layer].frames[i].duration;
>             i+=nDur;
>         }
>     }
> }
>
> // parseur de bibliothèque
> function parseLib(){
>     var aItems = oLIB.items;
>     for(var i=0 ; i<aItems.length ; i++){
>         if(aItems[i].itemType=='instance' || aItems[i].itemType=='movie
> clip' || aItems[i].itemType=='button'  || aItems[i].itemType=='graphic'){
>             // parcourt la timeline de chaque item
>             parseTl(aItems[i].timeline);
>         }
>     }
> }
>
> // gogogo .... fire in the hall
> run();
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes FCNG.
> Pour envoyer un message à ce groupe, adressez un e-mail à
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected] <fcng%[email protected]>.
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/fcng?hl=fr
>
>
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FCNG.
Pour envoyer un message à ce groupe, adressez un e-mail à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/fcng?hl=fr

Répondre à