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].
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/fcng?hl=fr
