pythonCOM with Flash
Bradley Schatz
bradley at greystate.com
Sat Jun 14 05:41:25 EDT 2003
More information about the Python-list mailing list
Sat Jun 14 05:41:25 EDT 2003
- Previous message (by thread): pythonCOM with Flash
- Next message (by thread): pythonCOM with Flash
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thanks Mark - Distributed testing pays off again.:) What didnt work on my work pc worked on yours and also my home pc. I am pleased to report that events work as expected too. > I'm uninterested in flash :) I use Mozilla as my day-to-day browser for > a number of reasons, and am happy that I actually need to go out of my > way to enable flash support there. I cant say that I have bothered to get flash working under my linux mozilla. My primary interest is using flash as the UI for python apps (on win32 of course). Not because I want to learn yet another gui toolkit, but because creative types seem pretty comfortable designing really good looking UI prototypes in flash. A couple of sites have covered this from a VB perspective - this article covers it in depth http://www.macromedia.com/devnet/mx/flash/articles/flash_vb.pdf Find a working demo attached below - click on the sphere in the flash window, and python will respond and change the gui based on the event. My next goal is to get this working outside of pythonwin, as a standard app. Any further suggestions on how how to throw together a simple activex gui container? -Bradley # simple flash/python application demonstrating bidirectional communicaion between # flash and python. Click the sphere to see behavior. # Uses Bounce.swf from FlashBounce.zip, available from # http://pages.cpsc.ucalgary.ca/~saul/vb_examples/tutorial12/ # make sure this .py has the right filesystem path to the swf import win32ui, win32con, win32api, regutil from pywin.mfc import window, activex from win32com.client import gencache import sys FlashModule = gencache.EnsureModule("{D27CDB6B-AE6D-11CF-96B8-444553540000}", 0, 1, 0) if FlashModule is None: raise ImportError, "Flash does not appear to be installed." class MyFlashComponent(activex.Control, FlashModule.ShockwaveFlash): def __init__(self): activex.Control.__init__(self) FlashModule.ShockwaveFlash.__init__(self) self.x = 50 self.y = 50 self.angle = 30 self.started = 0 def OnFSCommand(self, command, args): print "FSCommend" , command, args self.x = self.x + 20 self.y = self.y + 20 self.angle = self.angle + 20 if self.x > 200 or self.y > 200: self.x = 0 self.y = 0 if self.angle > 360: self.angle = 0 self.SetVariable("xVal", self.x) self.SetVariable("yVal", self.y) self.SetVariable("angle", self.angle) self.TPlay("_root.mikeBall") def OnProgress(self, percentDone): print "PercentDone", percentDone def OnReadyStateChange(self, newState): # 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete print "State", newState class BrowserFrame(window.MDIChildWnd): def __init__(self, url = None): if url is None: self.url = regutil.GetRegisteredHelpFile("Main Python Documentation") else: self.url = url pass # Dont call base class doc/view version... def Create(self, title, rect = None, parent = None): style = win32con.WS_CHILD | win32con.WS_VISIBLE | win32con.WS_OVERLAPPEDWINDOW self._obj_ = win32ui.CreateMDIChild() self._obj_.AttachObject(self) self._obj_.CreateWindow(None, title, style, rect, parent) rect = self.GetClientRect() rect = (0,0,rect[2]-rect[0], rect[3]-rect[1]) self.ocx = MyFlashComponent() self.ocx.CreateControl("Flash Player", win32con.WS_VISIBLE | win32con.WS_CHILD, rect, self, 1000) self.ocx.LoadMovie(0,"C:\\Projects\\flash\\Bounce.swf") self.ocx.Play() self.HookMessage (self.OnSize, win32con.WM_SIZE) def OnSize (self, params): rect = self.GetClientRect() rect = (0,0,rect[2]-rect[0], rect[3]-rect[1]) self.ocx.SetWindowPos(0, rect, 0) def Demo(): url = None if len(sys.argv)>1: url = win32api.GetFullPathName(sys.argv[1]) f = BrowserFrame(url) f.Create("Flash Player") if __name__=='__main__': Demo()
- Previous message (by thread): pythonCOM with Flash
- Next message (by thread): pythonCOM with Flash
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list