Saturday, January 19, 2013

Platform compatibilty

Lately, I've been doing a lot of Lightningbeam development on Mac OS X, with the result that changes were not being ported to all platforms. However, today I spent a while fixing bugs in Linux and Windows, and they now build and run fine. One check off the checklist, 20 to go.

Friday, January 4, 2013

Major useful features added

I have had a fair amount of time to work on Lightningbeam the past few days, and here's what I've added:
  • Undo + redo. Unlimited, but it just stores edits rather than re-copying the entire file every time you do something like SWIFT did.
  • Scaling. It's still buggy, but much better than it was before, and the scales now apply when you export to either HTML5 or SWF.
  • Images. So far this has only been implemented on Mac OSX, because I need to tweak PyGUI to add support for each platform; but you can now import, scale, and export images, and also use them as fills once I add them to the paintbucket tool.
  • Text editing working properly. If you add text to the stage, you can now edit it, and you can also click in the ActionScript window and select text (something which was really bugging me until I fixed that.)
  • Automatic installation of Flash Debugger. Lightningbeam requires a Flash debugger to run SWF files, and while I could just point people at the download site, I gave it the option to automatically download the debugger instead if it is missing.
  • Sound support; you can now import WAV files to the stage, and they can be exported to both SWF and HTML5 animation.
  • Selection of multiple objects.
And thoughts for the future: I had attempted to add an Android GUI backend about a year and a half ago, but the state of Python on Android at the time was really rather horrible and you had to do everything via a web page and server requests, so I gave up. However, I have recently started experimenting with Kivy, which uses Python and OpenGL(ES) to provide a cross-platform environment that runs not only on desktops but on Android, and also on iOS, so perhaps I will make apps for Android and the iPad.

Saturday, October 13, 2012

Menu fixed in Ubuntu!

For a while I was doing all of the development of Lightningbeam on Mac OS X, because Ubuntu Unity has a bug which causes the menus to disappear. However, I finally found a workaround, so it should now be just as usable as on other platforms. I will follow up with more testing to confirm this.

Tuesday, July 24, 2012

Oddities in Chrome

I was testing HTML5 export, and tried exporting the default file (currently a simple ellipse). Nothing was showing up in Chrome, so I did a bit of hunting around. I tried drawing lines, which all showed up. I finally figured out that bezierCurveTo was not working, because lineTo commands in the same place worked fine. Then, it occurred to me to try another browser, and I discovered it ran just fine in Firefox and Opera. But why wasn't bezierCurveTo working in Chrome? I did a bit of Googling and found out that this is actually a bug in Chrome, which crops up when curves begin and end on the same point. I added the fix mentioned in the Stack Overflow post, and here's where things get a bit weirder: the ellipse now shows up, but only the fill. Nothing will persuade Chrome to actually stroke the curves around the edges. The Chrome team seems to be ignoring the bug report, and I don't want to slow HTML5 drawing down any further by constructing the Beziers out of lines, so I'm just going to leave this one in for now. Outlines will show up as long as shapes have straight edges, but for ellipses you'll need another browser - or Flash, which of course Chrome comes bundled with by default, and which has no problems with curves.

Thursday, February 9, 2012

SharedObjects added!

One of the useful features of Flash is its ability to save data to the user's hard drive with the SharedObject class. I have now mostly implemented this class in JavaScript (in terms of localStorage), so things can be done like saving high scores. Still to be implemented is SharedObjects that communicate with a server, as that will be a bit more complicated.

Saturday, January 21, 2012

New release: Alpha 2!

I have implemented enough features in Lightningbeam that I feel it is ready for the second release. I have packages for Linux, Mac and Windows users, and on most systems they should work as-is.

Known package bugs:

  • There is no package for OSX Tiger. This is because there is a problem installing PyObjC which I haven't found a workaround for.
  • If using a newer version of Ubuntu:
    1. It may complain that it is a badly formed package. This is because I put pre-compiled binaries in a multi-architecture package. It will still work (unless you have an Itanium system or something), and I will look into fixing that.
    2. Unity causes a bug in GTK which makes it render some content (notably, the Timeline) outside the window. A workaround for now is to use Gnome instead.
This is still an alpha release, so features may be broken/unusable. However, it should be relatively stable with respect to crashing.

Thursday, January 19, 2012

Import FLA?

I have wanted Lightningbeam to be able to import .fla files for a while, as it would make it relatively easy to access old projects. The problem? While the .swf file format is a well known format, the .fla format is virtually undocumented. It is also a binary blob file, which is completely incomprehensible except for some strings of ActionScript. Following is the progress I have made on this.