[swfmill] as3compile
Marcin Cieslak
saper at saper.info
Thu Nov 5 15:04:53 PST 2009
Daniel Cassidy <mail at danielcassidy.me.uk> wrote:
> I also did a little of my own investigation yesterday evening and
> found that the off-the-cuff advice I offered yesterday is probably not
> sufficient for working with as3compile. I was expecting to be able to
> do something like this:
>
> swfmill simple assets.xml assets.swf
> as3compile -l assets.swf -o example.swf example.as
I am no expert on Flash (would be grateful for a sample assets and
AS3 code to merge), but I have looked at the swftools code.
as3compile imports only contents of tags 72 (RAWABC) and 82 (DOABC)
from the -l *.swf files. It generates a very simple SWF file
with DOABC tag only. So, what one can do:
as3compile -o code.swf code.as
swfmill swf2xml code.swf code.xml
and just merge the code.xml with assets.xml (taking
contents only of <DoABCDefine> tag and possibly <SymbolClass>
only). This can be done with any text editor.
Future integration scenarios include:
1) Have the XML "linking" program doing effectively above
work (could be called swfmerge / swflink).
2) Make swfmill accept an ABC blob somehow as input
(it is trivial to make as3compile to output raw .abc object
dump). My wish were also possibility to extract ABC objects
as binary dumps for various decompilers using swfmill.
(Maybe xml2abc/abc2xml options? Another tool extracting abc code only
out of swf/xml?)
3) Write a copy of writeABC() function (found in
swftools lib/as3/abc.c) that produces XML instead of the
ABC bytecode. This code could use swftools libs
and actually this could end up in a full-scale as3 compiler
*inside* of swfmill - so that one could even use as3 source
between <DoABCDefine>...</DoABCDefine> tags.
In this case swftools libraries could become dependencies
for swfmill.
This completely ignores resolution of external objects
between files. But I can work this out given some example
asset/code files to work on.
--
Marcin Cieslak
More information about the swfmill
mailing list