Developing GamesFlash over the last few years was a great learning experience and, as I’ve said before, was something I was extremely proud of. There were times however when I felt like giving up. Although Flash Lite was a great stepping stone towards a full mobile version of the Flash player, there were terrible fragmentation issues across devices and a frustrating number of bugs introduced across various versions of the Flash Lite run-time.
When I decided to eventually add video support I came across one problem in particular that nearly lead to me having a nervous breakdown. Testing GamesFlash directly from the phone’s Flash Player application or within Device Central indicated that the Series 60 devices should each have approximately 4 Mbytes of dynamic heap available, which was enough for video support to work quite well. However, after packaging as a SIS file using various SIS packagers, I noticed that GamesFlash was suddenly only allocated 2 Mbytes of dynamic heap, which wasn’t nearly enough to comfortably run video. It resulting in the dreaded “out of memory” dialog appearing at run-time after playing a handful of videos.
Having used SWF2Go for the bulk of my SIS packaging I contacted lead developer Faisal Iqbal (AKA chall3ng3r) to see if he could shed some light on the problem. Unfortunately a workaround wasn’t forthcoming but at the time Adobe’s Distributable Player Solution came to the rescue as it packaged content without the same memory issues. With the Distributable Player Solution now cancelled I often wondered how others got round the memory problems I was having. Surely I wasn’ t the only one suffering from these memory issues.
Well I got an answer today thanks to a Tweet from chall3ng3r. Looks like it was a memory allocation bug in Flash Lite 3.0 on S60 devices, which makes memory settings in the stub launcher obsolete. Nokia have now fixed this issue and the fix is available in Flash Lite 3.1 via a firmware update. The posts made by chall3ng3r on the SWF2Go Forum indicate that the problem is specific to 5th Edition devices. I wonder if that’s a mistake as I definitely experience the same problem on 3rd edition devices such as the N95.