Par défaut, Java n'est pas en mesure de travailler avec des fichiers Flash SWF . Les fichiers SWF sont des fichiers Adobe Flash qui contiennent des multimédias, des graphiques vectoriels et ActionScript . Cependant, un paquet de fonctions est disponible sur le Web qui étend les fonctionnalités de Java et vous permet de travailler avec des fichiers Flash. Par exemple, il peut vous aider à analyser le fichier SWF et de lire tout le texte . Vous pouvez ensuite utiliser le texte dans vos autres fonctions Java . Tout ce que vous avez à faire est de télécharger les fichiers source et un lien vers eux dans votre application Java. Instructions 1 Ouvrez le navigateur Web et accédez à Softpedia pour télécharger le code source JavaSWF2 . 2 Cliquez sur le bouton bleu " Télécharger" et enregistrez l'archive sur votre lecteur de disque dur . 3 un clic droit sur l'archive javaswf -CVS -snapshot- 1.zip vous venez de télécharger et sélectionnez extraire ici pour extraire son contenu dans le même dossier . Un dossier nommé javaswf est créé. 4 Créer un nouveau fichier de texte n'importe où sur votre disque dur, nommez ReadText.java et appuyez sur " Entrée". 5 Copiez le dossier com trouvé dans le dossier javaswf \\ bin dans le dossier contenant votre nouveau fichier Java. 6 Ouvrez le fichier Java dans n'importe quel éditeur de texte. 7 Insérez ces lignes à importer les ressources nécessaires : . . . import java.io. *; import java.util * ; import com.anotherbigidea.flash.interfaces * ; com.anotherbigidea.flash.writers d'importation * ; com.anotherbigidea.flash.readers d'importation * ; com.anotherbigidea.flash.structs d'importation * ; 8 insérer ce code pour lire le texte à partir du fichier SWF: . . public class ExtractText s'étend SWFTagTypesImpl {protected HashMap fontCodes = new HashMap (); ExtractText publique () {super (null );} tagDefineFontInfo public void (int fontid , String fontName , drapeaux int, int [] codes ) throws IOException { fontCodes . put ( new Integer ( fontid ) , codes );} SWFVectors tagDefineFont2 publics ( int id, int flags , String nom , int NumGlyphs , int ascension , int descente , int conduisant , int [ ] codes , int [ ] progrès , Rect [] géant, int [] kernCodes1 , int [] kernCodes2 , int [] ) throws IOException kernAdjustments { fontCodes.put ( new Integer (id) , ( codes! = null) : codes ? new int [0 ] ) ; return null ;} tagDefineTextField public void (int fieldID , String nomChamp , String initialText , limite Rect , int flags , AlphaColor textColor , alignement int , int fontid , int taillePolice , int charLimit , int leftMargin , int rightMargin , int indentation , int LineSpacing ) throws IOException {if ( initialText = null ! ) {System.out.println ( initialText );}} publique SWFText tagDefineText (int id, Rect limites, matrice Matrix) throws IOException { return new TextDumper ();} publique SWFText tagDefineText2 (int id, Rect limites , matrice Matrix) throws IOException { return new TextDumper ();} TextDumper public class implémente SWFText {protected Entier fontid ; protégé booléen firsty = true; police public void (int fontid , int textHeight ) { this.fontId = new Integer ( fontid ) ;} public void Sety (int y) {if ( firsty ) firsty = false; System.out.println autre ();} public void texte (int [ ] glyphIndices , int [] glyphAdvances ) {int [ ] = codes (int []) fontCodes.get ( fontid ) ; if ( codes == null) {System.out.println ( "\\ n **** n'avons pas pu trouver INFO police du texte **** \\ n") ; retour; } char [] caractères = new char [ glyphIndices.length ] ; for (int i = 0; i < chars.length ; i + +) {int index = glyphIndices [i] ; if ( index > = codes.length ) //polices système { chars [i] = (char) index ;} ? else { chars [i] = (char) (codes [index] );}} System.out.print ( chars) ;} public void couleur ( color couleur ) {} publiques vide setX ( int x ) {} public void done () {System.out.println ( );}} static void main (String [] args publique ) throws IOException { FileInputStream in = new FileInputStream ( args [ ,"0]); ExtractText extracteur = new ExtractText (); analyseur de TagParser = new TagParser ( extracteur) ; SWFReader lecteur = new SWFReader ( parser , in) ; reader.readFile (); in.close (); }} 9 Sauvegardez et fermez le fichier Java. 10 compiler le code source Java , placez le fichier SWF dans le même dossier et lancez le programme Java. Il vous demandera le nom du fichier SWF. Tapez-le et appuyez sur "Entrée" pour lire le texte de la SWF.
|