# Simplifying complex or repetitive function calls

**URL:** <https://forum.kirupa.com/t/simplifying-complex-or-repetitive-function-calls/259394>\
**Category:** Uncategorized\
**Created:** [May 4, 2008, 7:16pm UTC](https://forum.kirupa.com/t/simplifying-complex-or-repetitive-function-calls/259394 "2008-05-04T19:16:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![snickelfritz](https://avatars.discourse-cdn.com/v4/letter/s/7ea924/32.png) [@snickelfritz](https://forum.kirupa.com/u/snickelfritz)\
**Post date:** [May 4, 2008, 7:16pm UTC](https://forum.kirupa.com/t/simplifying-complex-or-repetitive-function-calls/259394/1 "2008-05-04T19:16:07Z")

</div>

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.

```auto
//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
