The iStockPhoto of Flash?
November 30, 2006
November 28, 2006
Good refresher articles… and in multiple languages, too! Of note is the primer for those coming from AS 1.0 to AS 2.0. Also some info on making components.
ActionScript 2.0 Primer
Just had a reason to use swftools today and was looking around for a way of combining items with a swf file (before trying swfcombine) and found this. I haven’t used swfmill much but… wow…
I?ve created a Python script that will output ?simple? swfmill XML, allowing you to pack whole directories of GIF, JPEG, PNG and SWF assets into a shared library swf with the minimum of fuss.
November 27, 2006
This does in fact seem to solve the dreaded “always reloading” image flash of the cell renderer. Bravo!
A normal typical quick implementation of a CellRenderer that loads its associated image in it’s instance is illustrated on the left. On the right is an example of an implementation using the BitmapCache. Since the List component from MM reuses it’s cell instances for multiple items while the user scrolls, the Cell renderer instance will often need to change it’s content. When the content is text based this problem doesn’t surface, since the content is already available as it to be displayed. When using image data, you can either code something that manages loading your items bitmaps in a global stable place or you can easily solve your problems with the BitmapCache classe.
Again with the Flash embedding… some references
Bob and I frequently field questions and read posts on lists related to the ?right? way to include Flash content in a web page. Several developers have made efforts to find a technique to do so that doesn’t break page validation, including Drew McLellan’s Flash Satay, Bobby Van Der Slius’s UFO, Geoff Stern’s FlashObject, and a nested object method provided by Ian Hickson.
Final Solution The complete code will then look like this (example + validator):
<!--[if !IE]> -->
data="movie.swf" width="300" height="135">
<param name="movie" value="movie.swf" />
<param name="loop" value="true" />
<param name="menu" value="false" />
<p>This is <strong>alternative</strong> content.</p>
Maybe it’s not a brilliantly elegant solution, but it’s only truly functional solution that I have found.
it’s functional in all browsers that I know
it always show alternative content if the plugin is missing
it can be combined with Eolas workaround trick
tags <param> are not doubled
November 26, 2006
Cool. Very cool. :-p
This HOW-TO covers up the whole process of installing Adobe Photoshop CS2 on a Ubuntu box in a few simple steps. This method has been tested only on Ubuntu, but it should work on any other linux flavor.
Quick overview on lots of news.
The Eclipse of web design software?
I have only used Aptana for a couple of hours, but it is the best IDE that I have never heard of. It has the most intelligent code indenting I have ever seen. It “understands” the formentioned languages. I get popups telling me which browsers support what syntax. Less keystrokes for neat, compliant code&
November 25, 2006
Whoa… talk about lightweight!
ASForms are lightweight and snappy Flash forms (components). They are designed for people who don?t need a full component framework, but rather need quick and easy flash forms they can drop into an application without too much trouble or size increase. Forms included so far are: Radio buttons, checkboxes, text input, password input, hidden fields, drop down boxes and simple text boxes
There is more in the original post which is an interesting read. Next is to check out some of the lighter skinnable components mentioned…
After swapping to an open Source flash solution for a RIA, the following advantages were achieved:
- saved over 110 working hours in compile time (that?s crazy stuff!!!)
- integrated into the overall dotnet web application a million times better
- less bugs, tighter code, better code
- better development environment
November 24, 2006
Actionscript 2.0 has serious shortcomings with regard to String functions. Luckily I?ve not been the only-one frustrated by this, and lot?s of people have already done lot?s of work to overcome Macromedia?s shortcomings. Earlier I found this String Functions Macromedia forgot, and posted about how I made it in to a Toolkit instead of extending the String prototype. Today I wrote a function that is a small alteration of the String fullreplace function that might be very useful for you too.
A useful class for extra string functions in AS 2.0.
However there are a few problems I had with ActionScript. For example I find the lack of support for basic String operation shocking. I had to put a simple String Toolkit together for my usage. It?s build from piece of code that I found on codebehind.com.
November 21, 2006
Cute yet useful. 😉 You can draw on your map and then post it up. It uses the Google Mapping API but since the host is quikmaps, you don’t need your own API key. Nice indeed.
Draw pictures and label things on a google map using simple clicks and drags. Easily move the map to anywhere in the world.
A useful set of classes and ideas for AS2 development by Michael at Creatage
I am in the process of putting together a Dev Kit of some classes that I use, and I’m working on classes that I will be using in the near future. I can’t distribute source code yet because I want to wait until I have a strong set before releasing the first iteration, but I am giving you guys the documentation which can be found here…
This is everything that is currently implemented in the dev kit:
- Sound Manager
- Stack/Queue Data Structures
- Depth Manager
- Interval Manager
- Double Click
- Cookie Jar
- String Format Part I and String Format Part II
- Key Combinations
- Drawing Utility
- Custom Cursor
- Configuration Utility
- Decting User Inactivity
- Undo/Redo Architecture
- Regular Expressions
- Date Class… DateTime
- DataTree class
Implementing undo/redo in an app. This could be done with an MVC-Command pattern as well. I haven’t dug into the code to see if this is similar to that. Interesting nonetheless.
Anyway… this is going to be for you advanced users, I put together an architecture for state/history managament in an application. This is implemented purely in OO, and is efficient and clean. It’s a very small very simple architecture, but it’s chances of not doing what it’s meant to are slim to none.
I haven’t tested this yet, but this is a class that allows a developer, through ExternalInterface, to get the URL of the page a swf is on without embedding JS into the HTML itself. The only catch is that for it to work cross-browser, the swf needs to be embedded dynamically, i.e. with SWFObject. However, with IE requiring the click to activate most sites are using some sort of dynamic embedding anyway. The link to the full thread is here. This is just a link to the recently patched up class which works with Safari. Thanks to the coders who put this together!
A class that brings sprintf functionality to Actionscript 2.0.
Formatted strings are a real convenience?one that is sorely missing from the Flash Actionscript library. This adds in the sprintf functionality,
And this particular tooltip is used in Xray and Red5. Nice implementation!
A tooltip can be very helpful for the user interface of applications, development tools, websites, multimedia, interactive maps, and games. It?s a great way to keep your interface free of clutter, and still supply information at a glance about any one of the elements.
Oooooh… a converter from AS2 to AS3… still in the works but mighty cool nonetheless… transitioning to Flex might be a little less of a headache later…
You’d be surprised at how useful something like this can be…
On Macromedia Exchange , when you get from one section to another, instead of getting a loading bar, you get a indeterminate loading circle that looks quite good. This Loading Circle component gives you a loading circle just like the one on Macromedia Exchange. It supports custom label, speed and styles.
This is quite neat, too. Close icons on the tabs.
I just finished up a new Flex 2 component that allows you to add close icons to tabs that when clicked will remove them from a TabNavigator.
When Flash Player 9 is all the rage (i.e. when Flash Player 10 is released) then maybe I can hit Flex dev again in earnest. This is a cool little mod on the tree component built into Flex. No code is available but there is a plug for a commercial version.
The Flex 2 component set includes a Tree control, but it doesn’t have the built-in ability to display checkboxes next to the individual nodes. Since I needed a checked tree control for a project of mine, I went ahead and built it.
Useful tool… scary tool. Most tools are!
Flare processes an SWF and extracts all scripts from it. The output is written to a single text file. Only ActionScript is extracted, no text or images. Flare is freeware. Windows, Mac OS X and Linux versions are available. The main purpose of decompiler is to help you recover your own lost source code. However, there are other uses, like finding out how a component works, or trying to understand poorly documented interface. Depending on where you live, some of them may be forbidden by law. It’s your responsibility to make sure you don’t break the law using Flare. If you develop Flash applications for living, you probably know that your code is not secure in SWF. It’s not the existence of decompiler that makes your code insecure though, it’s design of SWF format. Although no ActionScipt is stored there, most of it can be recovered from bytecodes.
November 20, 2006
Good site with lots of good links on examples of innovative yet still useful Flash. For example a portable green screen “lab”… well, red screen in this case.
Next-gen video: Adobe Flash Player is more than a traditional video player. It treats video as a first-class media type in an interactive, programmable environment. Grant Skinner shows where this is going… he greenscreens an actor against varying backgrounds, but then applies vector graphics which interact with the actor… falling leaves settle on his arms, buildings light up in concert with his motion, the actor wipes away steam which fogs the screen, a virtual ball is tossed between two actors. This is heavy stuff. But it’s where our abilities are taking us next….