The Stacks feature has been part of the Mac OS since Leopard and it is a great way to handle display elements. In this Quick Tip we will mimic this feature using ActionScript 3 Classes.
Final Result Preview
Let's take a look at the final result we will be working towards:
Step 1: Brief Overview
We'll make use of the awesome class created by PixelFumes and custom graphics to create a Stacks menu in Flash. You can download the source of the class from the developer's site.
Step 2: Set Up Your Flash File
Launch Flash and create a new Flash Document, set the stage size to 508x243px and the frame rate to 24fps.
Step 3: Interface
This is the interface we'll be using; the background is an image taken from my desktop and the cool logos are part of the Tuts+ network.
Convert the logos to MovieClip and mark the Export for ActionScript checkbox. The gray square is a stage button called stackButton.
Step 4: ActionScript
Create a new ActionScript Class (Cmd+N), save the file as Main.as and write the following lines; please read the comments in the code to fully understand the class behavior.
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import com.pixelfumes.stacks.Stack; //Remember to import the custom class
import fl.transitions.easing.Elastic;
public final class Main extends Sprite
{
private var stack:Stack = new Stack(); //Creates a new Stack container
/* The next variables are the movieclips names, you can add any movieclip to the stacks */
private var nt:NT = new NT(); //Nettuts+ logo
private var at:AT = new AT(); //Activetuts+ logo
private var mt:MT = new MT(); //Mobiletuts+ logo
public final function Main():void
{
/* Set the stack properties*/
stack.setRadius(240);
stack.setAngle(35);
stack.setStartAngle(0);
stack.setOpenEasing(Elastic.easeOut);
stack.setOpenTime(1);
stack.setCloseEasing(Elastic.easeOut);
stack.setCloseTime(0.5);
/* Add the elements to the stack container */
stack.addItem(nt);
stack.addItem(at);
stack.addItem(mt);
/* Position and add the stacks to the stage */
addChild(stack);
stack.x = stackButton.x;
stack.y = stackButton.y;
/* Listens for clicks on the stackbutton */
stackButton.addEventListener(MouseEvent.MOUSE_DOWN, stackClick);
}
private final function stackClick(e:Event):void
{
if (stack.getStackOpen() == false) //if stack is closed, open it
{
stack.openStack();
}
else //stack is open, so close it
{
stack.closeStack();
}
}
}
}
Step 5: Document Class
Add the class name to the Class field in the Publish section of the Properties panel.
Conclusion
You've created a useful Stacks menu for your applications or website. You can adapt the project to meet your needs or use this technique to build your custom Stacks.
I hope you liked this Quick Tip, thank you for reading!
Comments