Yesterday, we were about ready and done with a nice shiny new Flash project, when right at the end (as always) our slideshows just stopped working. Loads of them, all over the site. The strange thing was that the first one seemed fine – whichever one you checked – then the rest were just dead. Plus, this was the same image loader class that had worked a treat on other projects, happily loading and displaying hundreds of images concurrently with no complaints. The images were all loading to 100%, but Event.COMPLETE just wasn’t firing, so the bitmaps never got smoothed or added to the stage. Weird.
Then we noticed this unusual error:
VerifyError: Error #1107: The ABC data is corrupt, attempt to read out of bounds.
It seemed to come up every time we rolled off anything at all, and it appeared to be this that was killing the slideshows. Couldn’t see any connection at all, but there it was. But it only happened in the 2D sections, not in the main PV3D world. Troubling. So it’s an error I’ve never seen that makes no apparent sense and doesn’t seem to refer to anything specific in the project at all. Marvellous.
After extensive googling and sifting through reams of comments, I noticed a couple of people were hinting at the same thing – anonymous functions, but only in comments from many player versions back, a couple of years ago. I’ve never used them, I thought – and never would. It’s just lazy. Then I remembered we’d used the trick of a stage-sized invisible MC with no mouse cursor but an empty roll over, to act as a screen to prevent click-through when in a section (an oldie but a goodie), and it was that empty ROLL_OVER that we’d done as possibly my first ever anonymous function, to save time and space and typing. And it made sense that this was causing the error not when rolling out of anything at all, but when rolling onto that background MC. Never again!
I’m still none-the-wiser about what the hell it means, what the hell ABC data is, why it couldn’t be verified or why it killed the completely unrelated COMPLETE events and nothing else. Even the youtube vids still streamed fine. Bizarre, but at least removing that anonymous function sorted it. Hopefully this might be of some help to someone, somewhere, someday. Might save them all that googling.
May 6th, 2009 by Ad.
It's all about the flash | 2 Comments »