#!/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 my_lv:LoadVars = new LoadVars(); my_lv.onData = function(src:String) { debug.text = src; //src = "100 200 300 400 500 600"; // for demo if (src == undefined) { // No result retrieved. return; } var values = src.split(" "); for (var idx = 0; idx < graphs.length; idx++) { //var src = random(1023); // For demo purposes graphs[idx].lineStyle(1, 0xcccccc, 100); graphs[idx].lineTo(offset, GRAPH_HEIGHT-((int(values[idx])/1023)*GRAPH_HEIGHT)); } }; var doRead = function () { offset = offset + 1; if (offset > 300) { // TODO: Refresh. } //my_lv.load("/r/a/0", my_lv, "GET"); my_lv.load("/r/a/x", my_lv, "GET"); // 'x' means all pins. }; var intervalId = setInterval(doRead, 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; graphs[idx].moveTo(0, GRAPH_HEIGHT); }; 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)