#!/usr/bin/env python from ming import * import sys BUTTON_SIZE = 5 COLOUR_RED = (0xFF, 0, 0) COLOUR_GREEN = (0, 0xff, 0) SCRIPT_BUTTON_HIT = """ text2 = 0; if (!grid) { createEmptyMovieClip("grid", 1); grid.lineStyle(1, 0xffcccc, 100); grid.moveTo(0,0); grid.lineTo(0,100); grid.lineTo(300,100); grid.lineTo(300,0); grid.lineTo(0,0); }; var my_lv:LoadVars = new LoadVars(); my_lv.onData = function(src:String) { src = random(1023); // For demo purposes if (src == undefined) { // No result retrieved. return; } //text3.text = src; grid.lineStyle(1, 0xcccccc, 100); grid.lineTo(text2, 100-((int(src)/1023)*100)); }; var doRead = function () { text2 = text2 + 1; if (text2 > 300) { // TODO: Refresh. } my_lv.load("/r/a/0", my_lv, "GET"); }; var intervalId = setInterval(doRead, 500); """ def createCircle(size, fillColour): """ Create a circle shape with the specified size and fill colour. Returns the associated display item. """ s = SWFShape() s.setRightFill(s.addFill(*fillColour)) s.drawCircle(size) sdi = m.add(s) sdi.moveTo(-1000,-1000) # TODO: Hide or not place? return sdi if __name__ == "__main__": try: filename = sys.argv[1] except IndexError: print "Usage: %s " % sys.argv[0] raise SystemExit Ming_useSWFVersion(7) Ming_setSWFCompression(9) m = SWFMovie() b = SWFButton() sdi = createCircle(BUTTON_SIZE, COLOUR_RED) s2di = createCircle(BUTTON_SIZE, COLOUR_GREEN) b.addAction(SWFAction(SCRIPT_BUTTON_HIT), SWFBUTTON_HIT) b.addShape(s2di.getCharacter(), 8 | 2) b.setUp(sdi.getCharacter()) bdi = m.add(b) bdi.moveTo(-10,7) m.nextFrame() m.save(filename)