Development Log January 2008
Thursday, 31st January 2008
The playback control bar for the swf output is workable now. Happy enough with it for the moment. It's code is in cvs, and the next thing to get done is making sure clickable links work.
Wednesday, 30th January 2008
Got into debugging the swf output control bar, and fixed the main problem with the fast forward and reverse buttons, so they now work "ok". That code is now in CVS and usable, though I can already think of ways to make them "better". Likely give that a shot soon. :)
Updated - Got around to adding the "better" code, and it does work nicely. I think initial swf output is nearly done. (yay)
Sunday, 27th January 2008
Not a lot of time working on the Flame Project today. Did manage to find a bug in the version of Gnash that I'm using (0.8.1). It's not reliably honouring the actionscript call _root.gotoAndPlay(1). After many hours on friday, and not that many today, of again getting frustrated and wondering why my code wasn't working... it was Gnash. The Adobe player works fine with it. :-/ Looks like I need to update Gnash to latest cvs version (and may need to report a bug. hope not), and remember to include the official player earlier/more in my debugging.
Friday, 25th January 2008
Added code to the control bar and swf output, so the fast forward and rewind buttons will jump to the next (or previous) scene as appropriate. It's in cvs now, even though it's not quite working properly yet. :( Although things compile, and the action script code goes into the swf... the jumping forward and backing isn't being consistent. More research needed.
Thursday, 24th January 2008
Good progress with the swf control bar output. The images I were creating with vectors were incredibly ugly, so now we're using images from the Open Clip Art Library. Seems to be going ok, it's just a matter of more hours of code writing and putting some basic Action Script in place to jump between slides.
Wednesday, 23rd January 2008
Making good progress with the control bar for swf output. Have created working concept code (now in cvs in the ming_validation module), to test the basic functionality of control bar buttons for stopping and starting playback. Next thing to consider is how to move forward and backward full slides at a time.
Update - Added initial working code to main cvs. It only has play and stop buttons at the moment, and they're not pretty, but they work.
Tuesday, 22nd January 2008
Fixed the newly discovered bug of slide duration not being saved (and loaded from) project files. Now to look into the implementation of a playback control bar for swf output.
Monday, 21st January 2008
Found a bug in the slide creation code while debugging through the swf output loop for multiple slides. Slide duration wasn't being set properly, which was having weird knock on effects in places. Fixed that, and then tweaked/simplified a few other things in related code while I was there. ;-> Background layers are now able to be edited too, as not being able to was really causing me frustration while debugging.
Multi-slide output now works too. What was mostly needed was the explicit setting of display depth for swf objects, which is now done automatically. Everything is in cvs of course. :)
Need to figure out how to create a playback bar next. Something to do with movie clips I'm thinking.
Sunday, 20th January 2008
Text layer output (including multi-line text) for swf is complete. Also fixed a bug in how start/final positions for objects were being calculated in the main loop.
Found a bug in the version of Gnash I'm using (0.8.1 release), as compiled on my system. It doesn't display moving bitmap fills, instead it treats them as a mask. Wasted 3 or 4 hours today trying to find out why Flame was generating bad code (through Ming), and it turns out it wasn't. The official Adobe player plays the Flame generated swf back fine. Grrr. I'll try and fix the Gnash problem on my local system (else update to cvs version and/or report a bug).
After that's sorted, I need to ensure that projects with multiple slides in them are being rendered fine, and THEN, move on to creating a control bar for playback.
Update - Recompiled Gnash 0.8.1 to use the AGG renderer instead of Cairo, and the bug has gone away. Good news at least. ;->
Saturday, 19th January 2008
Lots of good progress so far today. Text layer output for swf is coming along well. Initial working code is in cvs. More work to do though, as although a background object is created for the text layers, it needs to be added to the same object as the text and get moved around with it. Might have to look into how swf handles "sprites" and similar. (unsure)
Friday, 18th January 2008
Finally got basic text output from Ming working, after early frustration. Updated the ming wiki for future reference, but haven't yet turned this new knowledge into swf output code for Flame yet. :(
Thursday, 17th January 2008
Got a reasonable amount done, adding the swf output code for mouse cursor layers. Looks like clickable links and text layers will be tomorrow. Hope it goes well. :)
Wednesday, 16th January 2008
Lots of good progress in the swf generation code today:
- Images are now output correctly
- Highlight boxes output correctly
- Slide duration is taken from the slide properties, rather than manually calculated
Having to get text output is a bit scary... unsure how it's done yet. Well, one way to find out. ;->
Tuesday, 15th January 2008
Took a lot of time working on the swf generation code. The main loop that controls everything for it has been reworked a lot, hugely simplified and clarified.
The swf generation for highlight layers is what I've been working with initially to keep things simple, and that's nearly done. They just need to be scaled to the correct output size now, and the main loop tweaked a bit so overlapping layers overlap properly.
Sunday, 13th January 2008
So much for coding on the 9th. Had a head cold over the last few days and couldn't concentrate. :( Anyway, took a LOT of time today on ripping out the old swf generation code and replacing it with initial swf generated through Ming. Quite good progress really, though I've only mostly got the highlight layer code in place. Still needs to be extensively debugged as it's causing segfaults, but things are well on the way. :)
BIG NEWS is that 6630 has joined, and begun translating things to Turkish. Excellent!
Tuesday, 8th January 2008
Took many hours today learning various Ming functions and concepts that will be needed for the swf output, and then writing them up in the Ming wiki as they were mostly undocumented. Hopefully that will help get other people to improve the Ming code and docs as well. :) Should be right to begin coding things tomorrow.
Monday, 7th January 2008
It's been extremely slow going. Almost definitely decided to redo the swf output to use Ming instead. Also considering dropping the animated svg output, which will simplify things, and I'm pretty sure the result I want can be done with Ajax these days.
Sunday, 6th January 2008
Found the "listswf" tool that's part of Ming, extremely useful. Much more effective for being able to tell where I'm going wrong with Flash generation that anything else I've found.
Now I have a better understanding of the swf file format, I'm understanding some of the things in Ming a lot better. Considering redoing the swf code with Ming again, and it looks like the Gnash project might be picking up support for Ming anyway.
Saturday, 5th January 2008
Still debugging through the output from Flame (imperfect) vs the output from ming (working). Wish there were better (more verbose) flash disassemblers out there, as I'm having to decode the bits by hand. I can see this is going to take a few more days. Heh.
Friday, 4th January 2008
After a bit of a break I'm getting back into this again. Couldn't find the code I'd been using with ming to validate against, so I've started that again and added it to cvs. Basic working code is in place, but it'll probably be tomorrow before it's good enough to start doing bitwise comparisons against.
Also updated the FunctionReference docs on the ming wiki with the functions I had to relearn today, as they don't seem to have anyone else working on it. Hopefully thats helpful.
Previous page: Development Log February 2008
Next page: Development Log November 2007