25 August 2011

Flash Player 10.3.183.7 Released

Glory Be!

All the issues from the catastrophic release of Flash Player 10.3.183.5 appear to have been fixed.

get.adobe.com/flashplayer

Still counting the cost of the previous update - well into the thousands of dollars. On the bright side, the hypertension it gave me didn't cause a heart attack!

16 August 2011

Flash Player 10.3.183.5 AS1 Shared Library Bug

I came across a critical bug in Flash Player 10.3.183.5, a security update that was released on Thursday 11th August 2011.

Basically, if you use shared libraries from circa Flash 6 / AS1 with a 2 frame preloader that uses either nextFrame() and/or gotoAndPlay(1), the whole containing swf movie will unload itself and you're left with a blank screen.

Here's the detail:
http://forums.adobe.com/message/3865740
https://bugbase.adobe.com/index.cfm?event=bug&id=2940617

Google Chrome users get Flash updated immediately and automatically and were the first to call tech support. The legacy games would load and then... nothing! Calls from IE and FF users soon followed. As we have lots and lots of swfs for old games still in use, a mild wave of panic started to fill the office.

Luckily the fix is simple, it's just a case of altering the preloader by removing the offending nextFrame() or gotoAndPlay(1). We ended up removing the preloader entirely as the 40k file size of the shared library is tiny by today's standards. Unfortunately for us, we had to do this on 400+ fla's, test them and release them as a hotfix to our clients.

Another cracking update from Adobe! In the UK, this is known as "dropping a bollock!"

24 February 2011

Particle Code

Particle Code, unlike its name suggests, is a new cross platform SDK for mobile devices. I first became interested in it when I discovered Actionscript was one of the supported languages.

The basic idea behind Particle Code is to write once and deploy eveywhere and the language you chose to write your code is up to you. The code will then be compiled to native code and packaged as apps for:
  • iOS
  • Android
  • BlackBerry
  • Windows Phone 7
  • J2ME
  • Symbian
Compiling to native code is an important difference between Adobe's paradigm: AIR apps deployed to mobile devices that require the AIR runtime installed in order to work.

This looks like a great idea and has the potential to save hundreds of hours porting an app between devices. However, even though Actionscript is supported, it is a completely separate platform to Flash/Flex, you will not be able to write a Flash Platform application with Particle Code.

Looking at the Particle Code API, it looks fairly similar to the way you would develop apps in Android, you can use Java or Actionscript to create your apps, though I suspect more will be added to that list.

From a Flash Platform developer perspective, there are lots of things missing, MovieClips, Sprites etc. plus you won't be able to do any E4X. You will undoubtedly need to write more code to get anywhere close to the animation capabilities of Flash, but the amount of platforms you can deploy to, may justify that extra effort.

09 February 2011

Flash Player 10.2 now available

Following my previous rant about some issues in FP10.1, you'll be pleased to know they're still there in 10.2. Obviously this fix is waiting for the 11.0 release.

Still, it's good to see that the CPU usage for video is vastly improved with Stage Video. However, this comes at a price as it bypasses the usual software rendering pipeline and passes the stream straight to the hardware. Therefore you can only rotate in 90ยบ increments and you can't skew, transform or convert to bitmaps. This is a pure video acceleration feature, which is good news as it saves battery time and will hopefully cause Apple to reconsider its increasingly irrational position regarding the FlashPlayer on iOS.

Although I wouldn't put much faith in that - Mac users beware - this is a known issue:
"On some Macintosh systems with NVidia 9400, GT 320, or GT 330 GPUs, live video streams render all black with hardware acceleration, or all white when using the software decoder."

Other new features include full-screen support for multiple monitors, hardware rendering support for IE9, custom native mouse cursors (use responsibly people!) and sub-pixel text rendering. That's great news if you're Chinese - you may actually be able to read something in 12pt. text!

This looks like a good "point" update, plus the 64-bit "square" version is now out of beta too. Time will tell if I have to go through my API's and fix a load of things as I did for FP10.1, but so far it looks impressive.

FlashPlayer 10.2 Download

FlashPlayer 10.2 Release Notes

02 February 2011

Google vs Bing - my tuppence worth.

As you probably know already, Google is accusing Microsoft of copying its search results on the Bing search engine. you can read a detailed account of the complaint here:
Google: Bing is Cheating, Copying Our Search Results

If you don't want to read all that, it basically says that Microsoft was using IE8 to capture the result of what people were searching for on Google, then copying that result, which would eventually appear on Bing. Google discovered this by adding "synthetic searches", searches made of random strings such as "mbzrxpgjys", added by Google engineers, that would only return results on Google itself. Strange, then, that they started to appear on Bing a few weeks after the Google engineers started searching for those terms using IE8 with the Bing Toolbar and the Suggested Sites feature switched on.

Is what Microsoft doing illegal? It's certainly cheeky, yet many sites use Google's search, albeit branded with a Google logo. I think the key to this is IE8.

The article above examines the T's and C's of IE8 and the Suggested Sites feature, which has 2 key points:
  • "addresses of websites you visit are sent to Microsoft, together with standard computer information."
  • "Information associated with the web address, such as search terms or data you entered in forms might be included."
By accepting these terms, you are in effect allowing IE8 to act as spyware, to monitor your web activity. It may well be used to improve your search results on Bing, but it also has the ability to glean information from Google search.

Personally I think passing off the Suggested Sites feature as something other than what it is - spyware - is dodgy in the first place, but the T's and C's probably do give adequate warning. Obviously information gathered by Suggested Sites is used to improve the search results for Bing, which is fair enough, but was the ulterior motive to scrape results from Google?

Aggregating results from search engines is common practice and can be quite useful, but if Microsoft want to use Google results in Bing, then it's only fair play to add the "powered by Google" logo next to them. If they're too precious to do that, then they should stop using Google's results, or at least pay Google to use their results without have to acknowledge the source.

At the end of the day, web searches are based on copying, storing and ranking information from all over the web, it's the forming of relevance and context which is the trick, something that Google nailed in the late 90's. As Isaac Newton admitted to "standing on the shoulders of giants" in order to create the Theory of Gravitation, Bing should be equally gracious if they are to use Google as a part of a utopian search service, vastly superior than its competitors. Bing certainly isn't that.

Cheats never prosper, unless you're Microsoft, which has arguably spent the last 30 odd years copying other peoples ideas. I'd like to think it's time for Google to give them a good hiding, but I doubt this will go any further than exposing Microsoft's practices to the public. If this did go to court, Google may have to openly explain how its precious algorithms work.

Google had concrete proof of this issue on December 31st, but waited until February 1st to release its findings - why? Because that was the date of the Farsight 2011 search engine conference, perfect timing to undermine everything Microsoft was to eulogise about Bing. Google seems to want to fight this battle with hearts and minds rather than through the courts (to date at least). Blog posts like this are popping up all over the web and if it only serves to steer your average computer user away from Internet Explorer, that can only be a good thing!

20 January 2011

HTML5 or HTML? Fallen at the First.

I found recent developments from W3C and WHATWG rather humorous, as they don't seem to have agreed on the name for
HTML ... erm ... version 5.

W3C recently pushed out a load of marketing tat for HTML5 which includes a snazzy superhero-laundry-detergent logo and the geekiest t-shirts known to man.

"You have HTML5 on the brain. Tell the world!" is the message from W3C.

Shame nobody spoke to WHATWG, who are also working with W3C (supposedly) on the specification:

"HTML is the new HTML5" they declare on their blog. They suggest renaming HTML5 back to plain old HTML and dropping the version number. "Time to move on!", they say. What will W3C do with all those t-shirts!?

The sad truth is, the organisations that are creating the HTML(5) specification can't even agree on the name, which seems like a case of falling at the first hurdle and doesn't inspire confidence in future developments!

http://www.w3.org/html/logo/
http://blog.whatwg.org/html-is-the-new-html5

12 January 2011

IntelliJ 10: A Real Alternative to Flash Builder

Have you ever had a large project in Flash Builder and you need to refactor a whole chunk of code into a new namespace and also have it move the files in SVN?

Have you tried to run an ANT build and got an "OutOfMemory error:PermGen Space" error and needed to up the memory to 1GB or over?

Has your machine been bogged down by massive memory/processor usage?

Much as I like Flash Builder, with its UI features and its ability to publish Flash projects, it has one major flaw: it's built on Eclipse.

Refactoring code and updating SVN in Flash Builder with Subclipse is possible but it can take a few minutes, plus it does have a tendency to go wrong and the whole SVN project can get addled, causing much grief.  Doing the same refactoring job in IntelliJ can take seconds and it will also update all your package declarations to match the new namespace. I can link to and run my ANT or Maven builds in a much more pleasing way, and it never seems to run out of memory, and all the while during coding, refactoring or building I'm using < 200MB of memory.

With IntelliJ you can debug swfs running in the FlashPlayer, unit test and refactor with ease. The downside is you don't get the memory profiler, the ability to publish Flash projects, or Flash Builder design view (I'm sure most proficient Flex developers hardly use it anyway).

I've been using IntelliJ 9 for 6 months now (I was previously using FDT), and IntelliJ 10 has added extra support for Actionscript, Flex and AIR. If you develop large scale Flash, Flex or AIR projects, IntelliJ saves time and frustration and is also a great editor for many other languages too.

Here's the Flex features: IntelliJ 10 Flex Features

I still use Flash Builder at home for my own projects. At home I tend to follow Adobe's recommended workflows between Flash Platform applications which all works reasonably well. So it's horses for courses, but for my job which deals with many large Actionscript heavy frameworks, IntelliJ is much more pleasant to use than FDT, FlashDevelop or Flash Builder.

04 November 2010

FlashPlayer 10.1 Throttling Problems

While the idea to throttle SWFs in inactive or minimised tabs/windows down to 2fps to reduce CPU usage is a good thing, it can cause havoc with SWFs that use both time-based and frame-based timing.

The frames will tick at 500ms, yet any time based event will still fire after TIMER_COMPLETE or after setTimeout(). You cannot rely on sequencing between the two, which is not a good idea anyway, but potential problems are made worse by the throttling.

If possible, do not mix frame and time based sequencing (which is good practice), but if you need to know when the SWF is minimised you can listen for:

Event.ACTIVATE
Event.DEACTIVATE


Now, this works on FF 3.5.15 with FP 10.1, it may behave differently between browsers and FlashPlayer versions, so it could be fairly unreliable.

In another experiment, I played a silent audio track while it was minimised, this kept the movie running at 8fps, which gave better resolution which was just enough to prevent some of the timer / frame sync issues, but again wasn't 100% reliable.

In short: don't mix your timers, try and keep it frame based. Until Adobe roll out an event we can use to detect throttling, we're stabbing in the dark.

08 October 2010

XML.appendChild FlashPlayer 10 - Known Bug. But wait...there's more!

I just hit a problem with XML.appendChild not accepting String values when you publish a swf for Flash Player 10.1

Doing this:
myXml.appendChild("<node>"+value+"</node>");
Will not work, this will:
myXml.appendChild(<node>{value}</node>);

Which is fair enough as it's strict E4X. What irks me is something that has worked now doesn't, which has caused problems with our custom swc API libraries that I've just spent a few hours fixing.

In the release notes for Flash Player 10.1 there is this entry:
"XML.appendChild does not function correctly when published as SWF10; works fine as SWF9. (2340839)"

"works fine as SWF9" - thanks! Not "fine" when I'm trying to implement 10.1 specific features.

Read those release notes some more and you discover fundamental issues:
  • [FP-1569] AS3 Timeline: Child Sprite ADDED_TO_STAGE event is fired twice. (2300936)
  • AS3 Timeline: First frame of Movie Clip animation played twice when created and added to stage with ActionScript. (2520095)
  • [FP-4423] onEnterFrame gets called more often than necessary. (2614589)
All of which look to be related at some lower level.

So as long as you're not doing any Flash development that requires listening to ADDED_TO_STAGE, or that requires accurate timing when adding MovieClips or using onEnterFrame, you will be fine!

And I certainly won't be using this post to rant about how such critical issues with fundamental features that have worked correctly for years have passed through Adobe QA with little more than a footnote which itself was missing two important words: "Oops, sorry!"

22 September 2010

Russ Rolling. It's like Rick Rolling, but worse!

Yes, that annoying habit of Rick Rolling is so last decade. The new video of the times is Russ Abbot's "Atmosphere", a #7 UK hit back in 1984. It's pretty awful, but what's worse is that it sticks in your head like a botfly larva.

Russ Roll someone today: http://www.youtube.com/watch?v=RFPLk5mJ1D4 , they'll hate you for it.

26 May 2010

Time to learn HTML5? No... learn Android

All the media hyperbole surrounding the recent Steve Jobs rant about Flash has given HTML5 a boost. Reading various blogs and Apple Fan Boy comments would lead you to believe Flash is dead and we're all going to be out of a job in the next couple of years. This is far from the truth. Already Flash is part of the Open Screen project and there will soon be an AIR runtime released for Android.

HTML5 is a long awaited update to HTML and, yes, it will render certain applications of Flash redundant, crappy add banners for one - and good riddance! However HTML5 is still not fully supported by all browsers and until browsers support a Javascript language up to ECMA 3 standard, it just feels like taking a step back into the archaic days of AS1 and Flash 4!

Apple don't want to support Flash for various reasons and they will push along with HTML 5 and Objective C apps on their closed software platform. Flash is part of the Open Screen project being adopted by all major mobile phone manufacturers, except one... guess who!? iPhone app development is a tempting prospect but it's current popularity, mainly due to lack of competition, will be eroded in the months to come as the mobile phone giants start to offer their own alternatives. Once this happens, the iPhone will look isolated on its proprietary island as apps able to run on a multitude of devices will begin to dominate the market. However, it will be harder for developers to make money in this open arena. It also remains to be seen if Apple really are turning into the Mobile Microsoft and try to stifle development of open source products and force you to use their OS and apps. Unlikely.

Flash, Flex and AIR are perfectly poised to enter the Open Screen app space, so really, you could stick with what you know. Yet, if you're feeling the cold hand of progress pushing your office chair towards the exit, learn HTML5 by all means, learn Objective C if you dare, but those of you with Flash/Flex or Java experience should learn Android as soon as you can

02 February 2009

Amazon S3 and the "Cloud"

I've recently got into Amazon S3 to backup my files off site and at low cost.

If you have no idea what Amazon S3 is, you can read about it here.

Once you've set up your S3 account, you need to be able to connect to it. There are many S3 client products to help you do this. I've tried out the following 3:
  • S3fs for Linux is free and it allows you to simply connect to your S3 "buckets" via the command line.
  • SubCloud is essentially S3fs with more functionality, most importantly encryption, https transfer and rsync functionality. This costs $129 for a one off licence.
  • JungleDisk has most, if not all of the features SubCloud offers, but it comes in Windows, OS X and linux versions with JungleDisk Monitor, a GUI application to help you configure your connection to Amazon S3. Most importantly it only costs $20 per licence.


When you use these S3 clients, your Amazon S3 "buckets", which act like virtual folders as they're probably distributed over many servers, are mounted to you file system like any other drive (or folder depending on your Operating System).

Without doubt, JungleDisk is the cheapest and easiest to set up for Windows / OS X, however, I couldn't work out how to get JungleDisk working from the command line on Linux machines. It kept coming up with a problem with a missing domain in the config file?

SubCloud boasts faster upload speed and it was easier to set up from the Linux command line, but at $129 dollars, I've not seen anything that would tempt me away from JungleDisk on Windows or OS X.

In Summary: Use JungleDisk for Windows / OS X and SubCloud for command line Linux.

The Importance of Encryption
Files transmitted by the connection software are MD5 encyrpted with your Amazon S3 access and secret keys. In addition to that, you need to be using https to make the connection to your buckets.

If you're backing up important and/or sensitive information (which is why you'd want this service in the first place, right?) then you wouldn't want anyone to hack into Amazon or have a dodgy Amazon employee looking at your unencrypted information on their servers. That's why JungleDisk and SubCloud allow you to further encrypt your files using a password that only you (or your organisation) will know. This means the files stored on Amazon's cloud can only be read by people who know that password.

This password encryption / decryption happens transparently when using the JungleDisk or SubCloud client software, so once you've entered that password then the file system acts as normal.

Now, the problem with that is what if you want to change that password? As far as I can tell, the answer is "DON'T"! Which could be a problem you've just fired a disgruntled IT employee. (please feel free to correct me on this)

Using the "Cloud"
Amazon S3 looks cheap - very cheap but there are some things to consider before you dive in.
Firstly, lets deal with a few plus points:
  1. Amazon infrastructure is vast and the SLA's Amazon provides means your data is as safe as it possibly can be
  2. It's incredibly cheap, compared to using other back up / hosting options for most home / small business usage.
  3. File access should also be incredibly fast anywhere in the world, due to the fact Amazon have server farms everywhere
But beware:
  1. It is initially cheap, but over time, you will always be storing and transferring more and more data too and from the service. It could become very expensive very quickly.
  2. Over reliance on this service may suck you in. Cheap prices are good for now, but down the line, you'll be at the mercy of Amazon or whoever holds all your information.
  3. Once you're hooked by the pencil pushers, this will become yet another monthly bill like your cell phone or electricity. In fact when Steve Ballmer says the future of computing is in the Cloud, this is exactly what he sees: a monthly billed reliance on centralised data services that you can't easily get out of!
  4. It also begs the question: what happens to your data if you don't pay up, or just miss a monthly payment?


The Cloud is the future, whether we like it or not. At the moment I like it, but ask me again in a few years when I'm struggling to pay my "data" bills!

19 January 2009

OS X Leopard Virtual Hosts and Symbolic Links

I'll keep this quick.

  • Say you have an SVN working copy in your Documents Folder: Documents/SVN/MyProject/
  • There is a webroot in there: Documents/SVN/MyProject/webroot/
  • You've got the following in etc/hosts : 127.0.0.1 localhost dev
  • You've created a Virtual Host for "dev" in /private/etc/apache2/extra/httpd-vhosts.conf
  • You included FollowSymLinks in the virtual host Directory settings for Documents/SVN/MyProject/webroot
  • You get a "Forbidden" error when you try to view http://dev
  • You did a chmod -R 777 on the Documents/SVN/MyProject/webroot/ folder and you still get "Forbidden"


If this sounds familiar to you, then here's the solution:

Use: chmod a+x

Open a terminal window use the chmod command for each folder in the path to the webroot. In the example path, it would be:
chmod a+x ~/Documents
chmod a+x ~/Documents/SVN
chmod a+x ~/Documents/SVN/MyProject
chmod a+x ~/Documents/SVN/MyProject/webroot

As solutions go, this is quite a bad one as it makes your Documents folder accessible to all. But after hours of trying, that's all I could do to get this to work.

Has anyone got a better way?

26 November 2008

YouTube Mashing

I was listening to BBC 6 Music, a cracking radio station that plays amazing new stuff you've never heard of, when I was sent the standard YouTube comedy clip of kittens doing silly things.

I was listening to Smoke Fairies - Living with Ghosts when I opened the kitten video.

By pure luck, I opened the video at the perfect moment in an almost seemless mix with the radio.

Try it yourself, follow these instructions:

  1. Load each video in a separate browser tab or window.

    Here's the Smoke Fairies video:
    http://www.youtube.com/watch?v=4ey8UQ21_jk

    And here's the "Lookin' Kitties" video:
    http://www.youtube.com/watch?v=MnR3bAICsDM

  2. Press pause on both videos until they're completely downloaded.

  3. Cue the Smoke Fairies video to about 1:48

  4. In a quick manoeuvre, start the Smoke Fairies video, then flip to the kitties video and press play.


Goes together pretty well doesn't it?

So budding DJ's, get out there and start a new trend,
"YouTube Mashing" ! But don't forget, you heard it here first ;-)

24 November 2008

Glenbow Museum - Art Pad

Here lies ArtPad:

http://www.glenbow.org/artpad

Technically it's a fantastic site. I only worked on a very small part of it myself, but many of my colleagues worked very hard to produce a site which is artistically stunning, yet adheres to strict accessibility standards - a tough job!

A big hurrah to everyone who worked on it. A slow clap to the fact it was poorly managed, vastly over budget and released 2 years after it was initially completed.

04 November 2008

Accessing Scenes in loaded SWFs (AS3)

Ok, ok, I can hear you now, "don't use scenes, silly boy!", but really, they're the best compromise to allow animators to freely draw avatars and allow me to control the avatar orientation with each scene.

Animators would send me swfs containing scenes named as each avatar orientation (N, S, E, W etc). I would then load these swfs into the game and use the scenes to control the avatars orientation. The problem is I couldn't access any of the scenes I got from the animators swfs. My proof of concept worked perfectly, but when I got the real stuff, it wasn't working!?

If I checked loadedMC.scenes.length, I would get a value of 1 instead of the expected 5, yet it would still cycle through all the scenes, but where were they?

I asked for the fla's and all seemed fine. However there was 1 minor difference: the animators were using Graphic symbols on the timeline in each scene, not MovieClips. I added a blank MovieClip to each scene and hey-presto, the scenes were accessible!

So if you use scenes, make sure you have MovieClip symbols inside them, otherwise you won't be able to access them at run-time.

*** Update ***
Please read comments to this post

16 October 2008

My Intel iMac is dead, logic board failure, how's yours?

With much dismay, I resigned myself to the fact my 2006 17" Intel iMac is kaput. I've had it since July 2006, so in just 2 years and 3 months it's died. It's the first total failure of any PC I've ever owned and also turns out to be the most expensive. To replace a logic board here in Canada costs around $1000, so it's an economic write off, I might as well buy a new machine.

When I bought the machine in the UK, back in 2006 I didn't bother getting AppleCare as I thought it was just another extended warranty you don't need. Somewhat ironically I think there's a European consumer law (which I'll have to research), that covers you outside the 1 year manufacturers warranty, but now I'm in Canada, I doubt that applies.

Two things disappoint me here:

1) It's shattered my perception of Apple producing reliable machines. I've been using Macs for years with no trouble with the machines at all. The expensive price tag stood for style and reliability - something that was made to last.

2) The sheer expense to myself. What ever I do, it's going to cost me. I cannot afford another Mac for a few months now and I'm back to using my old Sony Vaio, which the Mac replaced and is still going (it just about runs Flex 3). I need a machine to do my work, but can I really justify buying another iMac at $1500+ ? In Canada, Apple doesn't offer any credit schemes and I'm only allowed a $500 credit card limit as I've not lived in the country for long. It pains me to be actually considering buying a PC with Vista on it!

Doing a bit of Goolging and speaking to the guy in the Apple Store, it seems early Intel iMacs are prone to this problem. Potentially thousands of machines could be dropping like flies, out of warranty and at great expense to the consumer. Apple are probably keeping this one quiet, so please post here if you've had a logic board failure (or any other catastrophic problem) with the 2006/2007 Intel iMac models (the white ones).

**** UPDATE - MARCH 2011 ****
Thank you everyone for posting. There is a petition you can sign to recall 2006 iMacs.
http://www.petitionspot.com/petitions/imacrecall

Alas I ripped my iMac apart to get the HDD out and sent it for recycling. But if you still have your dead iMac, it may be worth signing the petition and get on a Class Action Lawsuit.

01 October 2008

Flash Player Audio Sync and Frame Rates

So, it's the end of my hiatus since I last posted. I got married, changed job, house, car - actually pretty much all my life.

I'm back to creating Flash games, which is always enjoyable. I'm currently building a multiplayer world and various games attached to it. At the moment I'm building a Dance Dance Revolution type game which initially sounds simple, and it would be, but for the fact the Flash Player frame rate is all over the place.

If you have a 24fps movie, each frame should fire every 41.166* ms - or they *should*. In reality the frame rate can vary +- 20ms, which means after a short while the animation drifts away from the audio quite considerably. This problem is caused by a number of factors, mainly CPU speed/load and platform. It's bad on PC but terrible on an Mac.

So the problem is how do you get your beat hits to be absolutely precise to the music? I've managed to solve this problem by creating a "deltaTime" variable which calculates the drift per frame. If you know how many milliseconds it should be and how much drift you have, you can convert that to pixels to move, based on frame rate.

The net effect is a bit weird. The beat hits are spot on with the music, but this comes at a price because as the instructions scroll down the screen, the distance the instruction icons move is different each frame. This results in a jerky scrolling motion.

I'm hoping FP10 has more accurate frame rates that would solve this problem.

25 March 2008

The Statistics of Argh!

You know those days when you just cannae take it any more (Capt'n) and end up typing "AAAAARRRRRRRRRRRRRRGGGGGHHHHH!!!!" into Google? Yet have you ever wondered how many AAAA's RRRR's GGGG's and HHHH's to use?

Well here's the answer:
http://osteele.com/words/aargh

The most common spelling appears to be "argh", which is really more of an apathetic sigh than a gut wrenching scream of annoyance.

Only 14 people seem to have gone with my spelling of 5 A's and 15 R's. You certainly need more than one A to get it going and there definitely needs to be more R's in the "argh" as I consider that the "body" of the scream when it audibly starts to blend with the multitude of A's.

What the statistics don't show are the G's and H's which, in my opinion, round the scream off. You need a good few G's to release that guttural sound of pain, followed by a few strained, aspirated H's as your lungs, exhausted of air, begin to collapse.

You see? T'interweb has its uses!

Back to work.... AAAAARRRRRRRRRRRRRRGGGGGHHHHH!!!!

18 March 2008

Use Weak References for Your Event Listeners

Please read this:

http://www.gskinner.com/blog/archives/2006/07/ as3_weakly_refe.html

Using weakly referenced event listeners means an object can be cleared during Garbage Collection even if there's an event listener acting upon it.

It's very useful when you're spawning / deleting a lot of objects, in my case bubble "bullets" that I'm firing at targets underwater.

It saved my bacon (and my forehead) as I've been banging my head on my desk wondering why objects I thought I'd removed still persisted in memory.

The fact it's not a default setting and not very well explained, nor is its importance highlighted (this should be stapled to the front of the Flash CS3/Flex DVD box), is bloody annoying.

Thanks Grant.