Standaard , Java is niet in staat om te werken met Flash SWF-bestanden . SWF-bestanden zijn Adobe Flash -bestanden die multimedia , vector graphics en ActionScript bevatten . Echter , een pak van functies is beschikbaar op het web die de functionaliteit van Java uitstrekt en stelt u in staat om te werken met Flash -bestanden . Bijvoorbeeld , kan het u helpen het SWF-bestand ontleden en lees alle tekst. U kunt dan gebruik maken van de tekst in uw andere Java functies . Het enige wat je hoeft te doen is het downloaden van de bronbestanden en de link om ze in uw Java-toepassing . Instructies 1 Open de webbrowser en navigeer naar Softpedia aan de JavaSWF2 source code te downloaden . Kopen van 2 Klik op de blauwe knop "Download" en sla het archief op uw harde schijf . 3 klik met de rechtermuisknop javaswf - CVS - SNAPSHOT - 1.zip archief u zojuist hebt gedownload en selecteer Hier uitpakken om de inhoud uit te pakken in dezelfde map . Een map met de naam javaswf wordt gecreëerd . 4 Maak een nieuw tekstbestand ergens op uw harde schijf , noem maar ReadText.java en druk op ' Enter '. 5 Kopieer de map com gevonden in de map javaswf \\ bin in de map met uw nieuwe Java-bestand . 6 Open het Java- bestand in een teksteditor . 7 Voeg deze regels om de benodigde middelen te importeren : . . . 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 Plaats deze code om de tekst te lezen van het SWF-bestand : . . public class ExtractText breidt SWFTagTypesImpl { beschermd HashMap fontCodes = new HashMap ( ) ; openbare ExtractText ( ) { super ( null ) ; } public void tagDefineFontInfo ( int fontId , String fontName , int vlaggen , int [ ] codes ) gooit IOException { fontCodes . zetten ( nieuwe Integer ( fontId ) , codes ) ; } openbare SWFVectors tagDefineFont2 ( int id , int vlaggen , String naam , int numGlyphs , int beklimming , int afdaling , int leidt , int [ ] codes , int [ ] voorschotten , Rect [ ] grenzen , int [ ] kernCodes1 , int [ ] kernCodes2 , int [ ] kernAdjustments ) gooit IOException { fontCodes.put ( nieuwe Integer ( id ) , ( codes! = null ) codes : ? new int [ 0 ] ) ; return null; } public void tagDefineTextField ( int fieldid , String fieldName , String initialText , Rect grens , int vlaggen , AlphaColor textColor , int uitlijning , int fontId , int fontSize , int charLimit , int leftMargin , int rightMargin , int inspringen , int lineSpacing ) gooit IOException {if ( initialText = null ) { System.out.println ( initialText ) ; } } openbare SWFText tagDefineText ( int id , Rect grenzen , matrix matrix ) gooit IOException { terugkeer nieuwe TextDumper ( ) ; } openbare SWFText tagDefineText2 ( int id , Rect grenzen , matrix matrix ) gooit IOException { terugkeer nieuwe TextDumper ( ) ; } public class TextDumper implementeert SWFText { beschermd Integer fontId ; beschermde boolean Firsty = true; public void lettertype ( int fontId , int textHeight ) { this.fontId = new Integer ( fontId ) ; } public void Seti ( int y) { if ( Firsty ) Firsty = false; anders System.out.println ( ) ; } public void tekst ( int [ ] glyphIndices , int [ ] glyphAdvances ) {int [ ] codes = ( int [ ] ) fontCodes.get ( fontId ) if ( codes == null ) { System.out.println ( " \\ n **** KAN NIET VINDEN FONT INFO VOOR TEKST **** \\ 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 { chars [ i ] = ( char ) index ; } ? else { chars [ i ] = ( char ) ( codes [ index ] ) ; } } System.out.print ( chars ) ; } public void kleur ( color kleur ) { } public void setX ( int x ) { } public void gedaan ( ) { System.out.println ( ) ; } } public static void main ( String [ ] args ) gooit IOException { FileInputStream in = new FileInputStream ( args [ ,"0 ] ) ; ExtractText afzuigkap = new ExtractText ( ) ; TagParser parser = new TagParser ( afzuigkap ) ; SWFReader reader = new SWFReader ( parser , in ) ; reader.readFile ( ) ; in.close ( ) ; } } < br > 9 Opslaan en sluiten van het Java-bestand . 10 Compileer de Java source , plaatst u het SWF-bestand zich in dezelfde map en start het Java-programma . Er wordt gevraagd naar de naam van het SWF-bestand . Typ het in en druk op " Enter " om de tekst te lezen van de SWF .
|