Som standard Java er i stand til at arbejde med Flash SWF-filer. SWF-filer er Adobe Flash-filer , der indeholder multimedie , vektor grafik og ActionScript . Men en pakke af funktioner er tilgængelige på internettet, der udvider funktionaliteten af Java og giver dig mulighed for at arbejde med Flash-filer . For eksempel kan det hjælpe dig parse SWF-filen og læs hele teksten. Du kan derefter bruge teksten i dine andre Java -funktioner. Alt du skal gøre er at downloade kildekoden og link til dem i din Java-program. Instruktioner
1
Åbn webbrowseren og gå til Softpedia at hente JavaSWF2 kildekode.
2
Klik på den blå "Download" knappen og gemme arkivet på din harddisk.
3
Højreklik på javaswf -CVS - SNAPSHOT - 1.zip arkiv du lige har downloadet , og vælg Udpak her for at pakke indholdet i samme mappe . En mappe med navnet javaswf er oprettet.
4
Opret en ny tekstfil overalt på din harddisk , name it ReadText.java og trykke på " Enter".
5 < p > Kopier com mappen fundet inde i javaswf \\ bin mappe i mappen med din nye Java -fil.
6
Åbn Java -filen i en teksteditor .
7
Indsæt disse linjer til at importere de nødvendige ressourcer : . . .
import java.io. * , import java.util * , import com.anotherbigidea.flash.interfaces * , import com.anotherbigidea.flash.writers * , import com.anotherbigidea.flash.readers * , import com.anotherbigidea.flash.structs * ;
8
Indsæt denne kode til at læse teksten fra SWF-filen : . .
< p > public class ExtractText udvider SWFTagTypesImpl { beskyttet HashMap fontCodes = new HashMap (); offentlig ExtractText () { super ( null) ;} public void tagDefineFontInfo ( int fontId , String skrifttypenavn , int flag , int [] koder) kaster IOException { fontCodes . sætte (ny Integer ( fontId ) koder) ;} offentlige SWFVectors tagDefineFont2 ( int id , int flag , String navn, int numGlyphs , int opstigning , int afstamning, int førende , int [ ] koder, int [ ] fremskridt Rect [ ] grænser, int [] kernCodes1 , int [] kernCodes2 , int [] kernAdjustments ) kaster IOException { fontCodes.put (ny Integer (id ) , ( codes! = null) koder: ? nye int [0] ) tilbagevenden null ;} public void tagDefineTextField ( int fieldId , String Feltnavn , String initialText , Rect grænse , int flag AlphaColor TextColor , int justering, int fontId , int fontSize , int charLimit , int leftMargin , int rightMargin , int indrykning, int lineSpacing ) kaster IOException {if ( initialText = null !) { System.out.println ( initialText );} } public SWFText tagDefineText ( int id , Rect bounds, matrix matrix) kaster IOException {return nye TextDumper (); } public SWFText tagDefineText2 ( int id , Rect bounds , matrix matrix) kaster IOException {return nye TextDumper ( );} public class TextDumper implementerer SWFText { beskyttet Integer fontId , beskyttet boolean Firsty = true; public void skrifttype ( int fontId , int textHeight ) { this.fontId = new Integer ( fontId ) ;} public void sety ( int y) {if ( Firsty ) Firsty = false; ellers System.out.println ( );} public void tekst ( int [ ] glyphIndices , int [] glyphAdvances ) { int [ ] koder = ( int []) fontCodes.get ( fontId ), hvis ( koder == null) { System.out.println ( "\\ n **** Kunne ikke finde FONT INFO TIL TEKST **** \\ n "); tilbagevenden ; } char [] chars = new char [ glyphIndices.length ] for (int i = 0; i < chars.length , i + +) { int index = glyphIndices [i ] if ( index> = codes.length ) //System Font { chars [i] = ( char ) index ;} ? else { chars [i] = ( char ) ( kode [ indeks] );}} print ( tegn) ;} public void farve ( Color farve) {} public void setX ( int x ) { } public gjort void () { System.out.println ( );}} public static void main (String [] args ) kaster IOException { FileInputStream i = new FileInputStream ( args [ ,"0 ]) ExtractText emhætte = new ExtractText (); TagParser parser = new TagParser ( emhætte ), SWFReader reader = new SWFReader ( parser i ) reader.readFile (); in.close (); }}
< br > 9
Gem og luk Java -filen.
10
Kompiler Java kilden , skal du placere SWF-filen inde i samme mappe og køre Java- program. Den vil spørge om navnet på SWF-filen . Skrive det og trykke på " Enter" for at læse teksten fra SWF .