Some of you may have seen these preliminary test images images on my flickr:


If your up for it …. i am working on collecting colors and words for use with this project … so watch the video (below) and go to the link (below) you will be able to make a contribution.
LEARN ABOUT THE TOOLS
video, (may not all make sense but the tool is shown which is the important part)
POPULATE THE DB
population tool add some colors
I have a smart filter that checks for people doing weird things like curses etc… so don’t bother trying to do that.
Additional info here, scroll down to see our presentation about the project
This Sunday I’m doing a free one day workshop in Processing.
Processing is a gateway programming language. It helped me to ease my way into Java, C++ and OpenGL. Without Processing, learning those languages would have been much harder for me. Processing is also an amazing tool for prototyping and doing proof of concept tests.
The class itself is eleven weeks long but the first class is free. If you’d like to read more about it, or sign up for the whole eleven weeks check out this link:
Processing Class at FMA
If you want to attend the free workshop, simply post a comment and you’ll be e-mailed a free pass for the class.
And if you haven’t seen Processing.js yet… check it out here.
Back in late October of last year I started up a new website called ActionSnippet.com. I created the site because I really enjoy reading code - I often skip all the paragraphs in a blog post and just go straight for the code. A new code snippet is posted daily on ActionSnippet.com, usually with a brief description.
I would have linked to ActionSnippet.com sooner but I wasn't sure what direction the site would go in, so I wanted to give it some time to evolve before linking to it. After approximately 260 code snippet posts I can safely say there is much more useful/educational code on ActionSnippet.com than there is weird useless experimental code.
In this post I'd like to highlight a handful of useful snippets for everyday projects and I'll link to a few advanced graphical snippets. If you just want to dig right in, you can look at the all posts page which is just a list of every code snippet on the site.
As you read each of the following descriptions, consider opening Flash, pasting the code into timeline script and testing the swf.
FileReference.save()
ActionScript 3.0:
-
var file:FileReference = new FileReference();
-
stage.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
-
function onClick(evt:MouseEvent):void {
-
file.save("some text.\nsome more text", "actionsnippet.txt");
-
}
This is one of my favorite features of Flash 10. We can save any kind of file to a user's computer using the FileReference.save() method. Its first argument is for the data to put in the file. This can be a String, ByteArray, or XML object. The second argument is the name of the file.
If you paste this code in your timeline all you need to do is click the stage and you'll get a dialogue asking where you would like to save the file "actionsnippet.txt".
Continue reading 'AS3 Tips, Tricks and Experiments'
Making image galleries in flash is very common. There are lots of different approaches, but the basic concepts stay the same. They're usually XML driven and they usually have external image files that are dynamically loaded into Flash. This post contains an image gallery shell that builds off of the Grids: Arranging Clips post. This post assumes you are familiar with that post, and with AS3 XML parsing. We won't be building this image gallery from scratch. Instead, I'll walk you through the key aspects of the code This post also contains source for the shell with some TweenLite animation added.
Continue reading 'Grids: Image Gallery'
One of my favorite things to do in Flash is to program different types of motion. From particle systems to the boss at the end of an advergame—the basic principles for moving things around the screen with code are the same. There was a time when all the different types of motion that I saw happening—back in the Flash 4 days—were a complete mystery to me. I remember spending a long time reverse engineering open source examples from ultrashock.com.
Motion Myth
For some reason lots of people seem to think that ActionScript animation creates smoother animation than the Flash timeline. This is simply not true. The timeline is just as capable of creating "smooth" animations as ActionScript is.
On the timeline, if you want a smoother animation, use a framerate around 30fps and put more space between your keyframes.
ActionScript vs. Timeline
Students sometimes ask me when to use coded animation and when to use timeline animation. The answer is more complicated than you might expect. Here's a basic set of rules:
TIMELINE ANIMATION IS FOR:
- animation that is always the same (static animation)
ACTIONSCRIPT ANIMATION IS FOR:
- interactive animation
- random animation
- animation driven from an outside source like an rss feed
- complex, static physics simulations that would be hard to animate on the timeline
- complex interactive physics simulation
- time-based animation—that is, animation that always runs at the same speed independent of framerate
Continue reading 'TweenLite Introduction'
I like to make my custom UI elements easy to skin. If we wanted to create a check box class that was easy to skin, one thing we could do is create an FLA based AS3 component. Unfortunately to do that takes advanced programming skills. If you're an intermediate programmer you might want to be able to create a skinnable UI element without all of the AS3 component architecture.
One way to achieve this is by creating a custom class that uses Library elements as assets. To increase flexibility (for swapping skins, for example), you can create each graphical element of your check box, store them in your Library, assign a linkage class name to each element, and then pass those linkage class names into your custom class.
Continue reading 'Linkage Classes as Arguments'
It's extremely common to need to position display objects in a grid formation. I usually find myself doing it when displaying thumbnails for an image gallery. This post will take you through the process step by step.
Continue reading 'Grids: Arranging Clips'
Understanding the basic display object properties like x, y, width, height etc... is imperative for anyone interested in intermediate level ActionScript. It's important to practice using properties until you understand them well enough to solve problems using them. If you're not comfortable with properties yet, you should read through Chapter 3 and then try the exercises in the Property Practice (simple motion) post.
Continue reading 'The Power of Relative Positioning'
Having a good grasp of the basic properties of display objects is extremely important for anyone interested in intermediate level ActionScript. This post assumes that you've taken the time to read through Chapter 3. If you're new to ActionScript, it will likely help with this post if you read up to Chapter 7.
This post contains a few short exercises that will put your knowledge of properties to the test.
As a guide, here are the properties that you will need to be familiar with:
x
y
scaleX
scaleY
height
width
rotation
For each example you'll need to use the properties in conjunction with an enterFrame event:
addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);
function onLoop(evt:Event):void {
// change properties over time
}
Continue reading 'Property Practice (simple motion)'
Over the past two weeks I've taught two different lessons covering the basic ins and outs of the Graphics class (Drawing API). Something I noticed is that it's not always immediately apparent when you're starting out that the clear() method can be used to animate dynamically drawn vector graphics. That is, in both my class demos I introduced clear() by using it to erase a canvas when a button was clicked. When I described the idea of continuously clearing and redrawing graphics to create an animation there was some confusion, so I created a simple demo on the fly:
addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);
function onLoop(evt:Event):void {
graphics.clear();
graphics.lineStyle(1,0x000000);
graphics.moveTo(100,100);
graphics.lineTo(mouseX, mouseY);
}
Copy this into your timeline if you're not sure what it does.
Continue reading 'Graphics Class clear() Method'