Bonjour,
je suis actuellement en train de travailler sur une fonction de recherche sur un genre de visionneuse.
je charge des fichiers swf comportant sur chaque frame une page de mon document. Lorsque je fait un TextSnapshot sur mon movieClip que j'ai donc chargé et dont j'ai bloqué l'avancement (gotoAndStop) sur une page, je fait un .findText() dessus et celui ci me trouve l'élément que je recherche.
afin de récupéré la position exacte de chaque caractère afin de positionner des éléments sur le résultats de recherche, je réalise un .getTextRunInfo('positionTrouvéeParLeFindText','longueurDuMotRechercher').
à ce moment, je récupère un array, avec autant d'Object que de lettres recherchées sur lesquels je récupère des informations comme .corner3x, .corner1y, etc
cependant, il arrive que des fois, l'object TextSnapshot ne fonctionne pas entièrement :
c'est à dire que si mon movieClip ne contient que le texte "page 15" par exemple, je fait un TextSnapshot sur lequel je fait un .findText("age") qui me retourne : 1.
je vérifie aussi le .charCount qui me retourne : 7 .
cependant, lorsque je lui demande un getText(1,3) (1=>position,3=>"age"), il pour je ne sais quelle raison, il ne me retourne rien, de même pour la fonction getTextRunInfo(), où monMovieClip est toujours fait de la même manière. avec soit "page 01", "page 02", "page 14"... etc
voici mon code :
et cela a pour résultat de m'afficher dans ma console de flash ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var maRecherche:String = "age"; var monSnap:textSnapshot = monMovieClip.textSnapshot; trace("monSnap.charCount : " + monSnap.charCount); trace("monSnap.findText(0," + maRecherche + ",false) : " + monSnap.findText(0,maRecherche ,false)); //sachant les résultats de findText, je force juste pour l'exemple pour que ça soit juste un peu plus clair en mettant directement à 1 trace("monSnap.getText(1,maRecherche.length).length : " + monSnap.getText(1,maRecherche.length).length); trace("monSnap.getText(1,maRecherche.length) : " + monSnap.getText(1,maRecherche.length)); trace("monSnap.getTextRunInfo(1,maRecherche.length) : " + monSnap.getTextRunInfo(1,maRecherche.length));
ou ceci quand malheureusement ça ne fonctionne pas (qu'à moitier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 monSnap.charCount : 7 monSnap.findText(0,age,false) : 1 monSnap.getText(1,maRecherche.length).length : 3 monSnap.getText(1,maRecherche.length) : age monSnap.getTextRunInfo(1,maRecherche.length) : [object Object],[object Object],[object Object]
auriez vous déjà eu ce problème d'objet qui ne fonctionne pas entièrement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 monSnap.charCount : 7 monSnap.findText(0,age,false) : 1 monSnap.getText(1,maRecherche.length).length : 0 monSnap.getText(1,maRecherche.length) : monSnap.getTextRunInfo(1,maRecherche.length) :
merci d'avance
Partager