You can use this code for creating a menu, duplicating a character etc. The below code snippet achieves just that.
// import all the necessary classes
import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.transitions.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
// end of importing classes
// define variables
// create a rect variable with Rect datatype. Draw a rectangle or any other graphic. Create a movieclip out of it
and in Symbol Properties from the library give a Class name as Rect with MovieClip as the base class
var rect:Rect = new Rect();
// Create a variable with datatype as mc
var mc:MovieClip;
// Create a Boolean isMenu variable assigning the value of true to it
var isMenu:Boolean = true;
// end of defining variables
// Animation functions. These functions will be used when duplicating and removing the duplicate movieclips
function animateMenu(whichClip:MovieClip)
{
// Alpha Tweening
var menuItemsFade:Tween = new Tween(whichClip,"alpha",Strong.easeInOut,0,1,1.2,true);
}
function animateMenuInv(whichClip:MovieClip)
{
// Alpha Tweening
var menuItemsFade:Tween = new Tween(whichClip,"alpha",Strong.easeInOut,1,0,1.2,true);
}
// Duplicate MovieClip function which duplicates the rect movieclip
function duplicateMc()
{
// Actual prototype duplicate movieclip function
MovieClip.prototype.duplicateMovieClip = function(obj:*, pName:String):Object
{
this[pName] = this.addChild(obj);
this[pName].name = pName;
return this[pName];
};
// The prototype duplicate movieclip is used in the for loop to duplicate the rect movieclip
for (var i:uint=0; i<5; i++)
{
mc = this.duplicateMovieClip(new Rect(), "mcRect_" + i);
mc.y = (i * (this.rect.height+7));
// animate the duplicated movieclips
animateMenu(mc);
// Click EventListeners added in each duplicate movieclips
this["mcRect_" + i].addEventListener(MouseEvent.CLICK, onRectClk);
function onRectClk()
{
trace("Yahoo!");
}
}
}
// This function is used to remove the duplicated movieclips
function removeMc()
{
for (var i:uint=0; i<5; i++)
{
// animate the removed movieclips
animateMenuInv(this["mcRect_" + i]);
this["mcRect_" + i].addEventListener(MouseEvent.CLICK, onRectClk1);
function onRectClk1()
{
this["mcRect_" + i].removeEventListener(MouseEvent.CLICK, onRectClk1);
}
}
}
// Create 2 buttons which calls the duplicateMc() and removeMc() functions
dupBtn.addEventListener(MouseEvent.CLICK, dupThis);
function dupThis(evt:MouseEvent):void
{
duplicateMc();
}
remBtn.addEventListener(MouseEvent.CLICK, dupRemove);
function dupRemove(evt:MouseEvent):void
{
removeMc();
}
// import all the necessary classes
import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.transitions.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
// end of importing classes
// define variables
// create a rect variable with Rect datatype. Draw a rectangle or any other graphic. Create a movieclip out of it
and in Symbol Properties from the library give a Class name as Rect with MovieClip as the base class
var rect:Rect = new Rect();
// Create a variable with datatype as mc
var mc:MovieClip;
// Create a Boolean isMenu variable assigning the value of true to it
var isMenu:Boolean = true;
// end of defining variables
// Animation functions. These functions will be used when duplicating and removing the duplicate movieclips
function animateMenu(whichClip:MovieClip)
{
// Alpha Tweening
var menuItemsFade:Tween = new Tween(whichClip,"alpha",Strong.easeInOut,0,1,1.2,true);
}
function animateMenuInv(whichClip:MovieClip)
{
// Alpha Tweening
var menuItemsFade:Tween = new Tween(whichClip,"alpha",Strong.easeInOut,1,0,1.2,true);
}
// Duplicate MovieClip function which duplicates the rect movieclip
function duplicateMc()
{
// Actual prototype duplicate movieclip function
MovieClip.prototype.duplicateMovieClip = function(obj:*, pName:String):Object
{
this[pName] = this.addChild(obj);
this[pName].name = pName;
return this[pName];
};
// The prototype duplicate movieclip is used in the for loop to duplicate the rect movieclip
for (var i:uint=0; i<5; i++)
{
mc = this.duplicateMovieClip(new Rect(), "mcRect_" + i);
mc.y = (i * (this.rect.height+7));
// animate the duplicated movieclips
animateMenu(mc);
// Click EventListeners added in each duplicate movieclips
this["mcRect_" + i].addEventListener(MouseEvent.CLICK, onRectClk);
function onRectClk()
{
trace("Yahoo!");
}
}
}
// This function is used to remove the duplicated movieclips
function removeMc()
{
for (var i:uint=0; i<5; i++)
{
// animate the removed movieclips
animateMenuInv(this["mcRect_" + i]);
this["mcRect_" + i].addEventListener(MouseEvent.CLICK, onRectClk1);
function onRectClk1()
{
this["mcRect_" + i].removeEventListener(MouseEvent.CLICK, onRectClk1);
}
}
}
// Create 2 buttons which calls the duplicateMc() and removeMc() functions
dupBtn.addEventListener(MouseEvent.CLICK, dupThis);
function dupThis(evt:MouseEvent):void
{
duplicateMc();
}
remBtn.addEventListener(MouseEvent.CLICK, dupRemove);
function dupRemove(evt:MouseEvent):void
{
removeMc();
}
No comments:
Post a Comment