jactionscript is a Java library that interfaces with the JavaSWF2 Flash parser/generator, and provides an object-model for ActionScript bytecode. Future versions will provide tools for performing some kinds of static-analysis on the bytecode.
jactionscript is released under an MIT-style licence.
This example code tries to print out 'links' in the Flash Movie,
public class LinkExtractor {
public static void main(String[] args) throws IOException {
GetUrlStackListener l = new GetUrlStackListener();
SimpleStackSimulator v = new SimpleStackSimulator(l);
SWFActionExtract extract = new SWFActionExtract(v);
TagParser parser = new TagParser(extract);
SWFReader reader = new SWFReader(parser, args[0]);
reader.readFile();
}
private static class GetUrlStackListener extends NullStackListener {
public void visitGET_URL2(GetURL2Action action,
Operand target, Operand url)
{
if (url.knownValue()) {
System.out.println("GET_URL2: "+url.getValue());
} else {
System.out.println("GET_URL2: (unknown)");
}
}
public void visitGET_URL(GetURLAction action) {
System.out.println("GET_URL: "+action.getURL());
}
}
}
When run with the appropriate CLASSPATH, the example produces output like this,
$ java uk.co.badgersinfoil.jactionscript.example.LinkExtractor rah_container.swf GET_URL2: nav/topnav.swf GET_URL2: nav/bottomnav.swf GET_URL: http://www.goodtechnology.com GET_URL: /rah/text_only/index.jsp GET_URL2: (unknown) GET_URL2: (unknown) GET_URL2: (unknown)
See the jactionscript javadoc.
2004-02-29 jactionscript-0.1.0.tar.gz 377 KiB
dave <at> badgers-in-foil.co.uk