A Potential Solution to the Eolas Flash Woes – The Object Replacement Method

There are a number of solutions out there for the limitation that Microsoft just put into place to deal with the Microsoft-Eolas plug-in patent dispute. The ones that I have seen (e.g: Flashobject) are nice but involve changing how you publish your Flash files and embed them into the HTML. I was thinking, it is possible to rewrite the HTML on the fly with JavaScript, so what if we just loop through all the Object tags within the Document Object Model, and replace the HTML? It could be done with one function call, and would not affect how you put the <object> and <embed> tags on the page.

The experiment that I tried does exactly that: it loops through all the <object> tags, and just replaces the HTML with exactly the same HTML. This makes IE think that the HTML is dynamically placed on the page, even though it started as just straight HTML.

It’s official, I’m an author!

Just a little bit of shameless self-promotion: my book is just about to hit store shelves!

book cover

I’m the dude on the left, and my co-author on the right is Jeff Berg.

Man, that is a long process (probably about 1 year total from contract to publication). Prepurchase now! Buy them as Christmas presents, birthday presents, Bar Mitzvah presents, even chew-toys for your dogs! (Discounts for bulk purchases for 5 dogs or more). They also work great as monitor supports (about 3 inches per book). If you reeeeeeeeeeally want, you can even read it yourself and learn how to script with ActionScript 2.0 and Flash 8 (perish the thought)!

A couple of useful Firefox extensions

I have come across a couple of really useful Firefox extensions aside from the excellent web developer extension which I wanted to share with the community.

The first is called View Rendered Source Chart, which renders the HTML source in a way that is very easy to visually see the nesting.

The second is one called View Formatted Source, and not only shows your HTML source in a way where you can collapse nested tags, but when set to inline mode, shows you the major divisions within your document, and clicking on “source” for that division brings up just the HTML for that division. Finally, mousing over tags in the source view shows you what styles currently apply to that tag, and where in the CSS file the styles are located.

A Divergence of Web Applications From the Browser?

Disclaimer: this piece (as well as this blog in general) is personal opinion and not endorsed by or representative of my employer.

I just came back from a conference where I was presenting on Web 2.0. A related discussion around Microsoft’s foray into the Rich Internet Application space ensued, and as part of that discussion, I was sent a link to an interesting Information Week article that talks directly to our discussion. The article talks about MS and Eclipse-based development environments for web applications, and one quote in the article demonstrated one of my major concerns perfectly:

Plotter Exercise with Bitmap Class

I was recently at FlashForward, and was inspired by some of Grant Skinner’s experiments using the Bitmap class. This example takes my previous plotter exercise and uses off-screen rendering instead. I also added the use of Perlin noise to feed the motion randomization routine. The result is definitely faster from the Bitmap use, and more organic from using the Perlin noise.

Genographic Project Online

I did a bunch of work on a nice little Flash piece for an IBM – National Geographic collaboration. It is a really cool project where the goal is to provide research on the geographic origins of the world’s different ethnic groups. Through this project, you can purchase a participation kit where you can provide a sample of your DNA from a swab of your cheek, and National Geographic will send you back information showing how your genetic ancestors travelled the world to get to where you are today. You can find out more about the project and about IBM’s role at http://www.ibm.com/genographic. Click on the main banner to launch the Flash piece. I did the ActionScript coding for the little pop-up modules, plus oversaw the project’s architecture.

Thumbnail representation  of Genographic Flash piece

Using ASFunction to Call Class Methods

One of the problems with ASFunction is that it will not let you call class methods. This is inconvenient if you are using your own custom class that builds an interface, and you need to have clickable links within a text field. A couple of solutions that I have seen uses a homemade proxy class or the built-in Delegate class to do it, but there is another way to do it that uses the same technique that is used within the XML object and within event handlers to retain the handle to the class instance. When an ASFunction link is clicked, the text field automatically looks to the parent movie clip for the function to call. A proxy function is placed in the text field’s parent movie clip, then a “parent” variable is created to hold the reference to the class instance. That variable is visible within the proxy function, and allows the function to then “redirect” to the class method.

Filters, Blending Modes, and Dynamically Loaded PNG Images in Action

Here is an example showing a few of the new Flash 8 features. First, it loads external PNG files containing variable transparency and shows that transparency interacting with a background image. Second it shows the blending modes that are now available, and shows the effect of the interaction between two bitmap images. Third, it shows some of the filters, and shows the interaction between filters and blending modes on the same movie clip.