#!/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 = """ if (intervalId) { clearInterval(intervalId); intervalId = null; } else { if (!offset) { offset = 0; } var doDraw = function () { //geturl("javascript:alert()"); offset = offset + 1; for (var item in graphs) { var src = random(1023); // For demo purposes graphs[item].lineStyle(1, 0xcccccc, 100); graphs[item].lineTo(offset, GRAPH_HEIGHT-((int(src)/1023)*GRAPH_HEIGHT)); } }; var intervalId = setInterval(doDraw, 500); } """ SCRIPT_MAIN = """ var GRAPH_HEIGHT = 75; var createGraph = function(name:String) { // // // var newClip = createEmptyMovieClip(name, getNextHighestDepth()); newClip.lineStyle(1, 0xffcccc, 100); newClip.moveTo(0, 0); newClip.lineTo(0, GRAPH_HEIGHT); newClip.lineTo(300, GRAPH_HEIGHT); newClip.lineTo(300, 0); newClip.lineTo(0, 0); return newClip; }; var graphs:Array = new Array(); for (var idx = 0; idx < 3; idx++) { graphs.push(createGraph("grid_"+idx)); graphs[idx]._y = idx * GRAPH_HEIGHT; graphs[idx]._x = 11; }; Stage.align = "TL"; //------ createTextField("debug", getNextHighestDepth(), 320, 0, 100, 20); debug.border = true; debug.text = "created"; //------ """ 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(5,7) m.add(SWFAction(SCRIPT_MAIN)) m.nextFrame() m.save(filename)