I was creating a mobile AIR app and the app was to have an ActionBar at the top and depending on the view that was about to get pushed I didn’t want the ActionBar to have a transition effect. Sounds like a simple request, nope, no can do…
So after a bit of digging into the various classes ( mainly the ViewTransitionBase ) I came across what needed to be changed but its a mx_internal so use the following fix with caution.
All of the various effects check the actionBarTransitionMode while they create the effects. Its just that the actionBarTransitionMode is always set to ACTION_BAR_MODE_FADE_AND_SLIDE and never changes from that value. What’s more the actionBarTransitionMode is a mx_internal variable so you can’t just call it yourself when creating a new effect.
So here is the fix.
- Extend whatever effect you wish to use. e.g. SlideViewTransition
- add the following lines to your extended class import import mx.core.mx_internal; and use namespace mx_internal;
- Either inside your constructor set the value (if you don’t wish to change it at runtime) or create a setter to modify the value actionBarTransitionMode
ACTION_BAR_MODE_FADE:String = “fade”;
ACTION_BAR_MODE_FADE_AND_SLIDE:String = “fadeAndSlide”;
ACTION_BAR_MODE_NONE:String = “none”;
In my case I set it to ACTION_BAR_MODE_NONE as I didn’t wish to have any transition on the ActionBar.