At the risk of getting sucked into the Apple vs Adobe shitstorm, my own response to Apple chosing to block Flash content from their mobile devices is to at least tell users why – because Apple left it at the rather obscure blue lego block, with no explanation (great experiential design guys). Simply include this code in your page/s to redirect mobile safari users to a page of your chosing …I direct them here.
I’ve seen a few people get into a pickle over this one. When you’re developing and testing locally, you need to set the ‘Local Playback Security’ setting (sometimes referred to as the ‘use network services’ option) depending on whether you wish to access local external files (e.g. XML files, or images) or some other server (e.g. your dev backend server). You can’t access both from a locally running SWF anymore, since it’s a security risk. So here’s how to set that option in Flash CS3 / CS4 or from within FlashDevelop.
I’ve been asked a few times now to create effects that require multiple instances of the Flash Player on a page to interact and remain in sync – even with interaction. Because of this, using timed events is no good and because of harddrive thrashing (which I won’t do for what might just be some banners) you can’t use Flash cookie updates. Also, when you have more than 2 SWFs, deciding which SWF updates who becomes tricky. I came up with this solution, using LocalConnection with a twist, which works pretty well – but if anyone has a better method, drop it in a comment
Flash Player 10 is finally here! But does it live up to the hype? Previous major releases of Flash Player have each brought with them significant improvements in performance or added functionality. This time around, the guys at Adobe have been tinkering with a few exciting (and a few somewhat drier) enhancements, including: native 3-D transform APIs, new custom ‘Pixel Bender’ filters, dynamic sound generation, hardware accelerated graphics and new video capabilities.
Personally, because I’m always looking for new things that enable us to create innovative and engaging user experiences, I’m a little less excited about new features such as support for right-to-left languages or new audio codecs. But at least there are people out there filling in the gaps, pushing Flash beyond its perceived limits and developing things we can actually use to create edifying experiences, such as papervision, box2d, etc.
Any new features though, even if they aren’t quite as ‘cool’ as the previous additions of webcam or socket server access, are ultimately a good thing. Let’s just hope everyone keeps pushing in the right direction and uses Flash to beautify the web, not just make it more clunky – Shockwave people take note.
I missed this when it was published, but Tinic Uro, an Adobe Flash Player engineer, published an interesting article on exactly why framerates in Flash Player are so damn unreliable – seems it’s not just about our shoddy code
I don’t usually make banners, but made an exception in this case because it involved doing some challenging code-driven animation. The result is quite nice and won some awards appparently, including NMA Capmaign of the Month.
The line dynamics itself is just Hooke’s law stuff – basic physics. Took some experimentation to get a smooth curve drawn through a series of points (basicaly, the control points of your previous and next points need to be in line).
The cars follow one of the line’s points with differing elasticity and damping, but the real pain in the backside was drawing the dashed line.
Luckily there were some tutorials about this and I found by moving the first drawing point up-screen it creates the animated effect – job done! Check it out on Bannerblog.
I recently needed to create something where a chain of spring dynamics points is connected with one smooth, seamless curve. After much mathematical wrangling, here’s the result of my efforts…
I was recently asked about the problem of loading XML from within a class to trigger an arbitrary method. The problem was: the onLoad event triggers on the XML instance, not the class creating it. This could probably be worked around with the Delegate class, but in the past I’ve simply extended the XML class itself, overriding the onLoad handler and adding a callback object that’s passed in (along with some error checking). It’s partnered with an XMLLoader class, the source and simple demo of which you can download here.