Standardmäßig ist Java nicht mit Flash-SWF- Dateien zu arbeiten. SWF -Dateien sind Dateien, die Adobe Flash Multimedia- , Vektor- Grafiken und ActionScript enthalten . Allerdings ist ein Paket von Funktionen, die das Web , die die Funktionalität von Java erweitert und ermöglicht es Ihnen, mit Flash-Dateien zu arbeiten. Zum Beispiel kann es Ihnen helfen, analysieren Sie die SWF-Datei und lesen Sie den gesamten Text . Anschließend können Sie den Text in der anderen Java-Funktionen . Alles, was Sie tun müssen, ist laden Sie die Quelldateien und Link zu ihnen in Ihre Java-Anwendung . Anleitung
1
Öffnen Sie den Webbrowser und navigieren Sie zu den Softpedia JavaSWF2 Quellcode herunterladen .
2
Klicken Sie auf die blaue Schaltfläche "Download" und speichern Sie das Archiv auf Ihren Festplatte.
3
rechten Maustaste auf das javaswf -CVS -SNAPSHOT - 1.zip Archiv, das Sie gerade heruntergeladen haben und wählen Hier extrahieren , um seinen Inhalt in den gleichen Ordner extrahieren. Ein Ordner mit dem Namen javaswf erstellt wird.
4
Erstellen Sie eine neue Textdatei irgendwo auf Ihrer Festplatte , benennen Sie es ReadText.java und drücken Sie " Enter".
5
Kopieren Sie den Ordner com im javaswf \\ bin -Ordner im Ordner mit den neuen Java-Datei gefunden.
6
Öffnen Sie die Java-Datei in einem beliebigen Texteditor .
7
Legen Sie diese Zeilen , um die erforderlichen Ressourcen zu importieren: . . .
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
Fügen Sie diesen Code , um den Text aus der SWF -Datei zu lesen : . .
< p > public class ExtractText erstreckt SWFTagTypesImpl { geschützt HashMap fontCodes = new HashMap (); öffentlichen ExtractText () { super ( null); } public void tagDefineFontInfo (int FontID , String fontName , int flags , int [ ] -Codes ) throws IOException { fontCodes . put ( new Integer ( FontID ) , Codes ); } public SWFVectors tagDefineFont2 (int id, int flags , String name , int numGlyphs , int Aufstieg , Abstieg int , int führenden , int [ ] -Codes , int [ ] Fortschritte , Rect [ ] Grenzen, int [ ] kernCodes1 , int [ ] kernCodes2 , int [ ] kernAdjustments ) throws IOException { fontCodes.put ( new Integer (id ), ( codes! = null) Codes: ? new int [ 0]); return null ;} public void tagDefineTextField (int fieldId , String fieldName , String initialText , Rect Grenze , int flags , AlphaColor textColor , int Ausrichtung int FontID , int fontSize , int charLimit , int leftMargin , int rightMargin , int Einbuchtung , int LineSpacing ) throws IOException {if ( initialText = null ) { System.out.println ( initialText );} } public SWFText tagDefineText (int id, Rect Grenzen , Matrix Matrix) throws IOException { return new TextDumper (); } public SWFText tagDefineText2 (int id, Rect Grenzen , Matrix -Matrix) throws IOException { return new TextDumper ();} public class TextDumper implementiert SWFText { geschützt Integer FontID ; geschützten boolean Firsty = true; public void font (int FontID , int textHeight ) { this.fontId = new Integer ( FontID ) ;} public void Sethos (int y ) {if ( Firsty ) Firsty = false; else System.out.println ();} public void text ( int [ ] glyphIndices , int [ ] glyphAdvances ) { int [ ] -Codes = (int []) fontCodes.get ( FontID ); if ( Codes == null ) {System.out.println ( "\\ n **** nicht finden konnte FONT INFO FOR TEXT **** \\ n"); return; } char [ ] chars = new char [ glyphIndices.length ] ; for (int i = 0; i < chars.length ; i + +) {int index = glyphIndices [i] ; if ( index> = codes.length ) //System Font { Zeichen [i] = (char ) Index ;} ? else { Zeichen [i] = (char ) ( Codes [index] );}} System.out.println ( Zeichen) ;} public void Farbe ( Farbe Farbe) {} public void setX (int x ) {} public void getan ( ) {System.out.println ( );}} public static void main (String [] args ) throws IOException { FileInputStream in = new FileInputStream ( args [ ,"0]); ExtractText Dunstabzug = new ExtractText (); TagParser Parser = new TagParser ( Dunstabzug ); SWFReader reader = new SWFReader ( Parser , in ); reader.readFile (); in.close (); }}
9
Speichern und schließen Sie die Java -Datei.
10
Kompilieren Sie die Java-Quellcode , legen Sie die SWF-Datei im gleichen Ordner und führen Sie das Java-Programm . Es wird für den Namen der SWF-Datei fragen. Geben Sie es und drücken Sie " Enter", um den Text aus dem SWF .
Lesen