Greetings…
I’m currently having trouble reducing repetitive functions to something simpler.
Everything I’ve tried is either throwing errors or simply does not run as expected.
Below is an example of a complex script (which is functioning perfectly, ATM) that I’d like to simplify.
//AS3 frame1 script
//frame label variable
var targetFrame:String = "";
//"buttonGroup" is a movieclip containing a dozen movieclip buttons with instance names that match their respective target frame labels.
//ie:button "mc1" sends the playhead to frame label "mc1" and so forth.
buttonGroup1.addEventListener(MouseEvent.CLICK, goToTargetFrame, false, 0, true);
buttonGroup1.addEventListener(MouseEvent.MOUSE_OVER , rollover, false, 0, true);
buttonGroup1.addEventListener(MouseEvent.MOUSE_OUT, rollout, false, 0, true);
//MOUSE_OVER
function rollover(event:MouseEvent):void{
TweenMax.to(event.target, .1, {alpha:0, ease:Linear.easeOut, overwrite:false});
}
//MOUSE_OUT
function rollout(event:MouseEvent):void{
TweenMax.to(event.target, .4, {alpha:1, ease:Linear.easeOut, overwrite:false});
}
//CLICK
function goToTargetFrame(event:MouseEvent):void{
targetFrame = event.target.name;
pointerNav();
play();
}
//Move playhead to target frame on completion of pageUnload function.
function afterPageOut():void{
gotoAndPlay(targetFrame)
}
//This function is called whenever a new page is loaded.
function pointerNav():void{
if (targetFrame == "home"){
TweenMax.to(pointer, .2,{autoAlpha:0, scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {autoAlpha:1, x:500, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
} else if (targetFrame == "mc1"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:210, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc2"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:230, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc3"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:250, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc4"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:270, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc5"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:290, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc6"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:310, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if (targetFrame == "mc7"){
TweenMax.to(pointer, .2,{autoAlpha:1, y:330, ease:Linear.easeIn, overwrite:false});
TweenMax.to(pointer, .2,{autoAlpha:1, x:0, scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, 0, {autoAlpha:0, delay:.2, overwrite:false});
} else if(targetFrame == "contact"){
TweenMax.to(pointer, .2,{autoAlpha:0, scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {autoAlpha:1, x:600, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
} else if(targetFrame == "map_mc"){
TweenMax.to(pointer, .2,{autoAlpha:0, scaleX:.01, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {autoAlpha:1, x:700, ease:Linear.easeIn, overwrite:false});
TweenMax.to(Hpointer, .2, {scaleX:1, delay:.2, ease:Linear.easeIn, overwrite:false});
}
}
//this script runs when the user clicks a button:
//playhead moves to next "stop();" on the timeline, and these functions are called from there.
//current page is unloaded, after which "afterPageOut" is called, which sends the playhead to the target frame label.
function pageHomeUnLoad():void{
TweenMax.to(pageHome, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:.5, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
TweenMax.to(pageHome.homeText, .5, {autoAlpha:0});
}
//page1 unload
function page1UnLoad():void{
TweenMax.to(page1, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:.5, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
TweenMax.to(page1.packagingText, .5, {autoAlpha:0});
}
//page2 unload
function page2UnLoad():void{
TweenMax.to(page2, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:.5, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
TweenMax.to(page2.servicesText, .5, {autoAlpha:0});
}
//page3 unload
function page3UnLoad():void{
TweenMax.to(page3, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:.5, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
TweenMax.to(page3.mailboxText, .5, {autoAlpha:0});
}
//page4 unload
function page4UnLoad():void{
TweenMax.to(page4, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//page5 unload
function page5UnLoad():void{
TweenMax.to(page5, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//page6 unload
function page6UnLoad():void{
TweenMax.to(page6, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//page7 unload
function page7UnLoad():void{
TweenMax.to(page7, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//pageContact unload
function pageContactUnLoad():void{
TweenMax.to(pageContact, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:.5, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
TweenMax.allTo([pageContact.contactText, pageContact.form_mc], .5, {autoAlpha:0});
}
//pageMap unload
function pageMapUnLoad():void{
TweenMax.to(pageMap.mapMenu, .2, {alpha:0, y:-505, delay:0, overwrite:false});
TweenMax.to(pageMap, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//pageThanks unload
function pageSubmitUnLoad():void{
TweenMax.to(pageSubmit, .6,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, rotation:360, onComplete:afterPageOut, ease:Back.easeIn, overwrite:false});
TweenMax.to(titleBar, .5, {y:0, delay:0, overwrite:false});
}
//This script is targeted when the playhead enters the target frame labels.
//Target page content is loaded by this function.
function pageLoad():void{
if (targetFrame == "home"){
TweenMax.from(pageHome, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Home"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
TweenMax.from(pageHome.homeText, .5, {autoAlpha:0, delay:1.2, blurFilter:{blurX:4, blurY:4, quality:1}, overwrite:false});
} else if (targetFrame == "mc1"){
TweenMax.from(page1, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Packaging & Shipping"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
TweenMax.from(page1.packagingText, .5, {autoAlpha:0, delay:1.2, blurFilter:{blurX:4, blurY:4, quality:1}, overwrite:false});
} else if (targetFrame == "mc2"){
TweenMax.from(page2, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Products & Services"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
TweenMax.from(page2.servicesText, .5, {autoAlpha:0, delay:1.2, blurFilter:{blurX:4, blurY:4, quality:1}, overwrite:false});
} else if (targetFrame == "mc3"){
TweenMax.from(page3, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Mailbox Rental"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
TweenMax.from(page3.mailboxText, .5, {autoAlpha:0, delay:1.2, blurFilter:{blurX:4, blurY:4, quality:1}, overwrite:false});
} else if (targetFrame == "mc4"){
TweenMax.from(page4, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Bereavement Services"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
} else if (targetFrame == "mc5"){
TweenMax.from(page5, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Greeting Cards"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
} else if (targetFrame == "mc6"){
TweenMax.from(page6, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Seasonal Gifts"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
} else if (targetFrame == "mc7"){
TweenMax.from(page7, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Gift Wrapping Supplies"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
} else if (targetFrame == "contact"){
TweenMax.from(pageContact, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Contact Us"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
TweenMax.allFrom([pageContact.contactText, pageContact.form_mc], .5, {autoAlpha:0, delay:1.2, blurFilter:{blurX:4, blurY:4, quality:1}, overwrite:false});
} else if (targetFrame == "map_mc"){
TweenMax.from(pageMap, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Store Location"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
} else if (targetFrame == "submit"){
TweenMax.from(pageSubmit, .5,{autoAlpha:0, scaleX:.01, scaleY:.01, delay:0, ease:Linear.easeOut, blurFilter:{blurX:16, blurY:16, quality:1}, overwrite:false});
titleBar.titleBarText.text = "Thank You!"
TweenMax.to(titleBar, .5, {y:50, delay:.7, overwrite:false});
}
}
Any insights or suggestions would be welcome.
Thanks