def main(): if len(sys.argv) == 2: filename = sys.argv[1] else: error('no filename passed') filename = os.path.abspath(filename) nex, ext = os.path.splitext(filename) if not os.path.exists(filename): error('cannot find file %s' % (filename, )) if ext == ".swf": abcs = SwfData.from_filename(filename).read_tags((DoABC, DoABCDefine)) else: error('cannot parse a %s file' % (ext, )) for i, abc in enumerate(abcs): name = getattr(abc, "name", None) or "%s_%d" % (nex, i) abc = getattr(abc, "abc", abc) data = abc.serialize(optimize=False) f = open(name + ".abc", "w") f.write(data) f.close() print "wrote %s.abc, %s" % (name, sizeof_fmt(len(data)))
def main(): if len(sys.argv) == 2: filename = sys.argv[1] else: error('no filename passed') filename = os.path.abspath(filename) nex, ext = os.path.splitext(filename) if not os.path.exists(filename): error('cannot find file %s' % (filename,)) if ext == ".swf": abcs = SwfData.from_filename(filename).read_tags((DoABC, DoABCDefine)) else: error('cannot parse a %s file' % (ext,)) for i, abc in enumerate(abcs): name = getattr(abc, "name", None) or "%s_%d" % (nex, i) abc = getattr(abc, "abc", abc) data = abc.serialize(optimize=False) f = open(name+".abc", "w") f.write(data) f.close() print "wrote %s.abc, %s" % (name, sizeof_fmt(len(data)))
from fusion.swf.swfdata import SwfData from fusion.swf.records import Rect, RGBA from fusion.swf import tags from fusion.avm2.abc_ import AbcFile from fusion.avm2.node import export_function, INode, Slot from fusion.avm2.loadable import Chain, This, Field, Stack, Local from fusion.avm2.playerglobal import flash swf = SwfData() abc = AbcFile() gen = abc.create_generator() @export_function(["Object", flash.text.TextField], rettype="void") def dump(gen, params, tracer): gen.load(0) gen.emit('convert_i') index_reg = gen.store_var("idx") params_reg = params.get_index(gen) gen.set_label("loop") gen.emit('hasnext2', params_reg, index_reg) gen.branch_if_false("done") gen.load(params) gen.load(Local("idx")) gen.emit('nextname') gen.load("=")
from fusion.swf.swfdata import SwfData from fusion.swf.tags import DefineSprite swf = SwfData(fps=1) shape = swf.new_shape() shape.graphics.lineStyle(10) shape.graphics.moveTo(0, 0) shape.graphics.lineTo(10, 10) obj = swf.place(shape) swf.next_frame() for i in xrange(1, 11): obj.moveTo(10*i, 10*i) swf.next_frame() obj.remove() f = open('shape_example2.swf', 'wb') f.write(swf.serialize()) f.close()
from fusion.swf.swfdata import SwfData from fusion.swf.tags import DefineSprite swf = SwfData(fps=1) shape = swf.new_shape() shape.graphics.lineStyle(10) shape.graphics.moveTo(0, 0) shape.graphics.lineTo(10, 10) obj = swf.place(shape) swf.next_frame() for i in xrange(1, 11): obj.moveTo(10 * i, 10 * i) swf.next_frame() obj.remove() f = open('shape_example2.swf', 'wb') f.write(swf.serialize()) f.close()
def get_swf(self, name="library"): from fusion.swf.swfdata import SwfData if not name.endswith(".swf"): name += ".swf" info = self.zip.getinfo(name) return SwfData.from_file(self.zip.open(info, "r"), info.file_size)