ScreenTabManager.as 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * October 21, 2009
  3. * @author Dezhu Chen
  4. */
  5. import mx.transitions.easing.None;
  6. import mx.transitions.Tween;
  7. class ScreenTabManager
  8. {
  9. private static var mSingletonInstance:ScreenTabManager;
  10. private var mScreenTabs:Array;
  11. public function ScreenTabManager()
  12. {
  13. mSingletonInstance = this;
  14. mScreenTabs = new Array();
  15. }
  16. public static function get Instance():ScreenTabManager
  17. {
  18. return mSingletonInstance;
  19. }
  20. public function AddScreenTab( tab:ScreenTab ):Void
  21. {
  22. mScreenTabs[tab.tabID] = tab;
  23. }
  24. public function ShowScreen( _newScreenId:Number ):Void
  25. {
  26. var curScreen:Screen = LobbyInterface.Instance.GetCurrentScreen();
  27. var newScreen:Screen = LobbyInterface.Instance.GetScreen( _newScreenId );
  28. var curTab:ScreenTab = mScreenTabs[curScreen.GetScreenTabId()];
  29. var newTab:ScreenTab = mScreenTabs[newScreen.GetScreenTabId()];
  30. if ( curTab != newTab )
  31. {
  32. newTab._visible = true;
  33. ConsoleWindow.Trace("Hiding " + curTab.tabID + ", showing " + newTab.tabID);
  34. new Tween( curTab, "_x", None.easeNone, curTab._x, curTab.GetStartingPos(), .5, true );
  35. curScreen.Hide( true, curTab.GetStartingPos() );
  36. new Tween( newTab, "_x", None.easeNone, newTab._x, ScreenTab.cExtendedPosX, .5, true );
  37. newScreen.Show( true, newTab._x, ScreenTab.cExtendedPosX );
  38. }
  39. else if ( curScreen.GetScreenId != _newScreenId )
  40. {
  41. curScreen.Hide( false, curTab.GetStartingPos() );
  42. newScreen.Show( false );
  43. }
  44. }
  45. }
粤ICP备19079148号