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.
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.
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.
read more…
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.
I know it is a bit early for it still, but here is a snow effect I created as part of a tutorial on ActionScript based animation.
Here is an example of the new ExternalInterface class available within the Flash 8 player. It implements both JavaScript calling ActionScript functions and ActionScript calling a JavaScript function. (Local link, requires Flash 8 )
Thanks to Tinic Uro, the principle engineer on the Flash Player, we have a hidden feature that can be used. Set both the base movie clip and the mask to make use of runtime bitmap caching, and alpha gradients will work!
View the example (Local to site, requires Flash Player 8 to view).
Example FLA. (Right click and “save link as…” to download)
I had a heck of a time finding information about how to use the Flex EventDispatcher class to generate custom events. I eventually found some information about what Macromedia calls mixins. Basically, they are a way of inserting methods into a class from another class without using subclassing. The example shows how to set up the EventDispatcher class as a mixin, but doesn’t actually show how the event handling works. I am providing an example here showing a couple of the EventDispatcher methods in actual use.
This is my second attempt at doing some scripted animation. This time I created a class to control the animation, which allows me to have multiple classes drawing to the screen at once. There are still some bugs I am working out, but feel free to take a look at what I have here, anyways. Enjoy!
This is just a little thingy I did when playing around with Flash. The rain effect is subtle, so you may not see it right away.
