From 06d8d1861880da7f1e2552bf3cac02644390ec0e Mon Sep 17 00:00:00 2001 From: Skyler Lehmkuhl Date: Thu, 12 Jan 2012 13:46:14 -0500 Subject: [PATCH] Added basic HTML5 export (no colors or ActionScript yet --- base.js | 245 +++++++++++++++++++++++++++++++++++++++----------- lightningbeam | 41 +++++++-- svlgui.py | 43 +++++++-- 3 files changed, 262 insertions(+), 67 deletions(-) diff --git a/base.js b/base.js index d8efc47..1cdf2aa 100644 --- a/base.js +++ b/base.js @@ -1,21 +1,12 @@ - - - - - - - - - - - diff --git a/lightningbeam b/lightningbeam index 3be1feb..6a5d88b 100755 --- a/lightningbeam +++ b/lightningbeam @@ -178,10 +178,31 @@ def run_file(self=None): svlgui.execute("open -a "+osx_flash_player_loc+" test.swf") elif svlgui.PLATFORM=='win32': win_flash_player_loc = "" - svlgui.execute('start '+win_flash_player_loc+" test.swf") + svlgui.execute('start '+win_flash_player_loc+" test.swf") elif svlgui.PLATFORM.startswith('linux'): linux_flash_player_loc = "" - svlgui.execute('xdg-open '+linux_flash_player_loc+" test.swf") + svlgui.execute('xdg-open '+linux_flash_player_loc+" test.swf") +def create_html5(root): + retval = "\n\ +\n\ +\n\ +\n\ +\n\ +\n\ +\n\ +\n\n" + return retval +def run_html(self=None): + global root + print "RUNNING" + root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions = MainWindow.scriptwindow.text + open("SDFGHJK.html", "w").write(create_html5(root)) + def box(x, y, width, height, fill=None): @@ -208,6 +229,7 @@ def shape(x, y, fill=None): return shape root = svlgui.Group() +root.name = "_root" root.level = True root.onMouseDown = onMouseDownGroup root.onMouseUp = onMouseUpGroup @@ -237,13 +259,13 @@ elif svlgui.SYSTEM=="android": MainWindow = lightningbeam_windows.MainWindowAndroid() MainWindow.stage.add(root, 0,0) svlgui.FOCUS = MainWindow.stage -layers = svlgui.Group() -b = svlgui.Image("media/object_active.png",0,0,True,MainWindow.layerbox,16,1) +layers = svlgui.Group(skipl=True) +b = svlgui.Image("media/object_active.png",0,0,True,MainWindow.layerbox,16,1,True) layers.add(b) MainWindow.layerbox.add(layers,0,0) -frames = svlgui.Group(onload=onLoadFrames) -b = svlgui.Image("media/keyframe_active.png",0,0,True,MainWindow.timelinebox,16,1) +frames = svlgui.Group(onload=onLoadFrames,skipl=True) +b = svlgui.Image("media/keyframe_active.png",0,0,True,MainWindow.timelinebox,16,1,True) frames.add(b) frames.onMouseDown = onClickFrame frames.onKeyDown = onKeyDownFrame @@ -294,12 +316,12 @@ def quit(widget): def add_keyframe(widget=None): root.descendItem().add_frame(True) - b = svlgui.Image("media/keyframe_active.png",root.descendItem().activeframe*16,0,True,MainWindow.timelinebox,16,1) + b = svlgui.Image("media/keyframe_active.png",root.descendItem().activeframe*16,0,True,MainWindow.timelinebox,16,1,True) frames.add(b) MainWindow.timelinebox.draw() def add_layer(widget=None): root.descendItem().add_layer(root.descendItem()._al) - layers.add(svlgui.Image("media/object_active.png",0,root.descendItem().layers.index(root.descendItem().activelayer)*32,True,MainWindow.layerbox,16,1)) + layers.add(svlgui.Image("media/object_active.png",0,root.descendItem().layers.index(root.descendItem().activelayer)*32,True,MainWindow.layerbox,16,1,True)) print root.descendItem().layers.index(root.descendItem().activelayer)*32 #MainWindow.layerbox.draw() def delete_layer(widget=None): @@ -381,7 +403,8 @@ svlgui.menufuncs([["File", "Export .pdf", "Export Animated GIF"], ["Tools", - ("Execute",run_file,"/\r")], + ("Execute",run_file,"/\r"), + ("Execute as HTML5",run_html,"/\\")], ["Modify", "Document", "Convert to Symbol", diff --git a/svlgui.py b/svlgui.py index d318a94..f41e166 100644 --- a/svlgui.py +++ b/svlgui.py @@ -212,6 +212,7 @@ if SYSTEM=="osx": m.save_cmd.enabled = 1 m.open_cmd.enabled = 1 m.run_file.enabled = 1 + m.run_html.enabled = 1 m.create_sc.enabled = 1 m.add_keyframe.enabled = 1 m.add_layer.enabled = 1 @@ -837,9 +838,10 @@ class TextView(Widget): self.scroll_page_down(); class Image(object): - def __init__(self,image,x=0,y=0,animated=False,canvas=None,htiles=1,vtiles=1): - global Library - Library.append(self) + def __init__(self,image,x=0,y=0,animated=False,canvas=None,htiles=1,vtiles=1,skipl=False): + if not skipl: + global Library + Library.append(self) self.x = x self.y = y self.minx = x @@ -1170,6 +1172,9 @@ class Shape (object): miny = property(getminy) maxx = property(getmaxx) maxy = property(getmaxy) + def print_html(self): + retval = "var "+self.name+" = new Shape();\n"+self.name+"._shapedata = "+str(self.shapedata)+";\n" + return retval class framewrapper (object): #Wraps object per-frame. Allows for changes in position, rotation, scale. @@ -1553,6 +1558,8 @@ class Group (object): if frame