Yay, Flash Player Beta 10 2 - My Favorite Feature “unloadAndStop”

Two days ago, Adobe released Beta 2 of Flash Player 10. With it came a number of enhancements, bug fixes and new features. Linux users got a much more even playing field. But the one that I think will have the most impact on my day to day Flash work with Flash Player 10:

unloadAndStop — This new ActionScript 3.0 API adds unload functionality similar to the unload behavior in ActionScript 2.0.  After calling unloadAndStop on loaded content it will be immediately removed stopping all audio, removing eventListeners, and becoming inaccessible through ActionScript.

This sounds to me like a fix for this massive bug/issue noted in this great post by Grant Skinner. That bug prevents clean unloading and garbage collection of unloaded/unused movieclips or sprites. Very excellent news for everyone who builds, buys or consumes Flash content. I am also excited to have limited fullscreen keyboard access, but fixing this major issue will definitely help me not need to put kludgey workarounds in or avoid AS3 based Flash content any longer.

Kudos, Adobe!

10 Open Source or Free Flash or Flex Code Libraries You Need To Check Out.

Build, steal, buy, or borrow… These would be the four basic ways you can make your applications a reality, pretty much regardless of the language you develop in. Flash and Flex development is no different in this regard.

Building will get you what you want, provided you have the skills to do it, but could take a load of time. Time obviously equals money. Stealing source code is of course unethical and I would never endorse it, for the obvious immediate moral implications. But furthermore, it is simply not a commercial option when developing work for clients due to long term legal issues. Buying code or components is often a great way to rapidly make progress that would otherwise take a long time to build. Borrowing code or the closest parallel I could think of, using open or free libraries, components, frameworks or APIs, is often the smartest thing to do when building an application of scale or one that requires a short timeline to deployment. (more…)

Video TimeSlicer: Generate Multiple Thumbnails from a Video Using Flex and ImageSnapshot

At The Iona Group we have hundreds, probably thousands of videos that we have shot or somehow acquired from client asset libraries, etc. These videos are stored and logged in a pretty big legacy database (Don’t laugh, I think it’s Access). We also have some clients where stored their video assets in a big fat digital asset management system, (DAM) (One in Cumulus, the others proprietary, I believe). These tools make it easier to access the vast array of clips, tapes, etc. we have amassed over the years. Often though, all we have in the record or DAM is one lonely thumbnail image, some timecode info, the log notes about content, acquisition information (date, location, shooter, etc) and maybe, if we are lucky, a short preview clip. This makes selecting stuff for B-Roll or determining what archival footage might be needed a bit tough. Certainly time consuming, too. (more…)

The A-Ha moment. When the Flash Platform Becomes More Than a Toy For Your Client

I recently had the pleasure of spending a full day at a client’s site along with some representatives from Adobe. It was great day for networking, introductions and demonstrations. A number of technologies were shown, from Acrobat 3D to LiveCycle, to InDesign/InCopy and finally Flex with Data Services. This client is already using Flash on their site in a number of presentational media methods, and also in their eLearning initiatives. I wold be willing to bet this profile fits a lot of large corporations current state of media affairs. They have recently begun transitioning from some other print publishing tools to the Adobe Creative Suite. They really haven’t tapped into using Adobe tools for business applications yet though.

I have a couple theories on that reluctance. Much of that is due to their long entrenched legacy systems, built using a myriad of technologies. Some of it though is due to what I am dubbing the “Flash Hangover”. You know what I mean, right? The hangover from the type of Flash that caused Jakob Nielsen to write the Flash: 99% Bad article so long ago. You know the type. The Skip Intro Flash. The extra beepy or seizure inducing Flash. The un-backbutton friendly un-search engine friendly un-content management system friendly Flash content we’ve all come to know and loathe. Flash is either viewed as a acceptable annoyance or a toy.

It’s clear to everyone deep in the industry that Flash Player 9 and the current state of affairs in the Flash ecosystem is a little bit past that, but for people that are only tangentially involved in the electronic publishing aspects of a large corporation, the A-HA moment has probably not happened yet. I witnessed it happen for a room full of people the other day, and I’m sure there are many many companies out there may need that moment to push them away from the tired old HTML powered apps they currently have a towards true RIA development.

Silverlight does not have this hangover to recover from, and I must say, we had many of the people at the event asking about a comparison to Siverlight in regards to the data services we were seeing displayed in the very cool Flex visualizations.

It should be an interesting next couple of years.

Bending Some Pixels – Just Playing Around: First Impressions of Pixel Bender and Flash Player 10

So, I downloaded the Flash Player 10 Beta and the Pixel Bender Toolkit and I must say, it’s fun. I have yet to do anything truly productive with it, but as a creative tool or something that shows the amazing possibilities of Flash 10 off, there isn’t a much better demo out there then downloading the tools, playing with them, exporting a PBJ file (yes, the Flash Filter ByteCode is called a PBJ - hehe.) and running it through the Pixel Bender Demo here. Read on to see some samples and download a few simple sketches. (more…)

Update: Why Microsoft Silverlight Will Fail - 1 Year Later

Last April, I wrote a post listing some reasons why I felt Silverlight would not succeed. That post garnered a lot of visits, comments and a few trackbacks. It’s still a highly trafficked post of mine. Furthermore, that post is the number one Google result for “silverlight IDE” and ranks pretty highly for a number of Silverlight related phrases like “silverlight penetration”, “silverlight market penetration”, and a few others along those lines. I’d like to revisit some of those points to see how things have changed in the past year. I was inspired to revisiti this after reading Robert Scoble’s friendfeed topic on this subject. Read on to see the progress. (more…)

Wow, Adobe… Flash Player 10 Beta. Already? Wow.

Too good to be true. Seriously. Flash Player 10 Beta is available for download. My favorite feature I intend to play with Pixel Bender filters. Woohoo! Go get it now! I fully intend to abuse this once I wake up from tonight’s sleep.

Open Letter to Component Developers and Vendors: Sell Your Code, Too!

I work at a small shop. We work smart. Pretty agilely, for the most part. We have also built up a large repository of code, both AS2 and AS3 amongst other platforms (PHP, ASP .Net, etc) and do benefit a lot from intelligent reuse of assets and a very cool custom LCMS we have built that integrates with a really well developed modular Flash front end for e-learning content… however, we don’t have every conceivable interaction type, UI widget, data parsing doohicky and whatever else could come to a client’s mind lurking around on our servers. Sometimes, we have to go to the web and find or even buy components. When it’s a question of buying a component for low price or spending a large amount of hours to replicate that functionality with custom code, oftentimes we really don’t have much of a choice. When deadlines loom or other projects are pressing, it’s just a easy decision to make. We buy the component. We probably have a library of about a dozen components or extensions for Flash we have purchased at one point or another.

Here’s my gripe. The vendor’s typically sell the components as compiled MXPs, which is understandable. The packaging makes it easy to buy, download, install and use. Not so easy to modify, which if that’s what you want to do, you’re out of luck. Last week, a component we purchased forced me to program some hacky workarounds because of that fact. It’s a great component, really. It was just lacking a couple key events I wanted to use to trigger some interactivity and external asset loading. A quick visit to their forums showed me that a number of other users were looking for similar capabilities. I posted my current workaround and a couple other little functions that some of the users might find useful to learn more about the component. Here is what I’d love to see…

Sell the code, too! If your component is $50… why not sell the code with the MXP for $100, or $150, whatever you need to help protect your intellectual property from piracy or pilfering but offer your customers the flexibility they need. This will help cement your reputation with developers that need that power and stop the need to respond to support forum post after support forum post with the repetitive “We don’t currently offer that feature in the component at this time, we may add that in a future release”. That support forum post wouldn’t be necessary because if we needed a new listener, a new data type, a new UI widget or any other extended feature, we could have it.

Some of the absolutely most useful bits of Flash code I have used or reused didn’t come from closed components, they came from the Adobe open source stuff on Google Code, The Casa Framework, and Tweener. All open and all free. How about you? Do you know or use any commercial component vendors? Who are the easiest to work with, who has the most open licenses? Most editable code, best support? I’d love to learn how you are maximizing your time out there with 3rd party code, components and APIs.

Bout to take the day off. No coding, but a couple great links for you.

Some golfing, though. Feels good. The weather is looking nice and it’s Saturday, so there. But, before I go and enjoy the day, here are some really cool links for you to check out. A couple very talented friends of mine at cascadingstyle.net have a series of posts detailing their SMS/Drupal/Services/Flash integration project. That’s right. SMS. Drupal. Flash. All connected via web services. Displayed live on giganto screens for all to see. 1000 people in the audience. It was really cool. Here’s a video from Vimeo that shows a little bit about the show. I helped out by writing a generative screensaver that played while everyone enjoyed their dinners.


The Campaign for a Bradley Renaissance Text Messaging from Sven on Vimeo.
You gotta go read his posts. He shares code, process an everything. A blueprint for success, if you will.

Progress with Painting. We Have Edge Detection.

A previous post detailed the simple algorithm for the underpainting technique I have been messing around with in order to attempt an “impressionistic” style. I have spent a little more time working with it and in addition to the broad brush strokes that lay the base color, I have made progress in creating a layer of definition to help with the image’s fidelity. Using Flash’s convolution filter to do edge detection is something I had never attempted before and so, to Google I went and found a great post at Quasimondo’s blog, his site is amongst the first I go to when I need inspiration on how to do something, and then stumbled upon a couple excellent tutorials on Sobel, Laplace and Canny Edge Detection written by Bill Green in 2002. I was about to attempt to port that code over to AS3, but then found a developer had already done just that. Alex Petrescu’s very cool implementation of canny edge detection seems to be working pretty well, but I’m not done with messing around with yet. Even, so, I thought I might share a couple images created using this edge detection with my pixel painting. I welcome feedback and suggestions. This has been alot of fun, and I look forward to seeing how it progresses.