so today my question is how can we have 1 function triggered by both a Timer event and a Mouse event? ‘m trying to avoid having to re-write/re-name a function just because I also have a Mouse event that triggers it and not just a Timer event.
Issue:
I have a addThis bubble fade in with icons on a button rollover, the addThis bubble will fade out after the timer is finished, but I also have a close button in that bubble which needs to use the same function that the timer uses. (want to avoid writing 2 exactly alike functions)
I’m hoping this there is an easy workaround for this like event:null or something.
The Timer Event:
private function overShareButton(event:MouseEvent):void
{
shareIconsTimer = new Timer(3000,1);
shareIconsTimer.addEventListener(TimerEvent.TIMER, fadeOutShareIcons);
shareIconsTimer.start();
fadeInShareIcons();
}
The close button event:
shareIcons.btn_closeIcons.addEventListener(MouseEvent.MOUSE_UP, fadeOutShareIcons);
The addThis Bubble Fade out function:
// Fade out the addThis Icons
private function fadeOutShareIcons(e:TimerEvent):void
{
shareIcons.buttonMode = false;
shareIcons.btn_closeIcons.buttonMode = false;
shareIcons.btn_email.buttonMode = false;
shareIcons.btn_facebook.buttonMode = false;
shareIcons.btn_myspace.buttonMode = false;
shareIcons.btn_digg.buttonMode = false;
shareIcons.btn_delicious.buttonMode = false;
shareIcons.btn_favorites.buttonMode = false;
shareIcons.btn_twitter.buttonMode = false;
shareIcons.btn_google.buttonMode = false;
shareIcons.btn_messenger.buttonMode = false;
shareIcons.btn_stumbleupon.buttonMode = false;
// STOP TIMER & Remove share icon button events...
shareIconsTimer.stop();
shareIconsTimer.removeEventListener(TimerEvent.TIMER, fadeOutShareIcons);
shareIcons.btn_email.removeEventListener (MouseEvent.MOUSE_UP, addThisToEmail);
shareIcons.btn_facebook.removeEventListener (MouseEvent.MOUSE_UP, addThisToFacebook);
shareIcons.btn_myspace.removeEventListener (MouseEvent.MOUSE_UP, addThisToMyspace);
shareIcons.btn_digg.removeEventListener (MouseEvent.MOUSE_UP, addThisToDigg);
shareIcons.btn_delicious.removeEventListener (MouseEvent.MOUSE_UP, addThisToDelicious);
shareIcons.btn_favorites.removeEventListener (MouseEvent.MOUSE_UP, addThisToFavorites);
shareIcons.btn_twitter.removeEventListener (MouseEvent.MOUSE_UP, addThisToTwitter);
shareIcons.btn_google.removeEventListener (MouseEvent.MOUSE_UP, addThisToGoogle);
shareIcons.btn_messenger.removeEventListener (MouseEvent.MOUSE_UP, addThisToLive);
shareIcons.btn_stumbleupon.removeEventListener (MouseEvent.MOUSE_UP, addThisToStumbleupon);
TweenLite.to(shareIcons, .2, {alpha:0});
}
My only choice right now is to create another function to handle the close button MouseEvent, any tips/thoughts appreciated! 😀
Your problem here is you have typed your
fadeOutShareIconsargument to aTimerEvent, so it can only acceptTimerEvent.Since
MouseEventandTimerEventdescend fromEventyou can use it so both can work together. If you want also call the same function without argument you can pass a default value setted to null.case 1
case 2 with default argument so you can call
fadeOutShareIcons()You can also check from where event you came checking the type of the event: