Files
2025-11-24 14:19:51 +05:30

120 lines
2.5 KiB
ActionScript

/*
* Screen - base screen class. Many screen classes will derive from this
* Note: V before the function names stand for virtual, these functions are intended to be overwritten by children if needed
*
*/
import mx.transitions.easing.None;
import mx.transitions.Tween;
class Screen extends MovieClip
{
private var mScreenId:Number;
private var mScreenTabId:Number;
private var mIsLoaded:Boolean;
public function Screen()
{
_alpha = 0;
_x = -1000;
ConsoleWindow.Trace("Constructing Screen");
mScreenId = -1;
mIsLoaded = false;
onLoad = VOnFinishedLoading;
}
public function VInitialize():Boolean
{
return true;
}
//Child class should still call this even if it needs to define its own VOnFinishedLoading func
public function VOnFinishedLoading():Void
{
mIsLoaded = true;
LobbyInterface.Instance.RegisterScreen( mScreenId, this );
}
public function IsLoaded():Boolean
{
return mIsLoaded;
}
public function Show( bDoTween:Boolean, tweenFrom:Number, tweenTo:Number ):Void
{
ConsoleWindow.Trace("Showing " + this);
if ( bDoTween )
{
new Tween( this, "_x", None.easeNone, tweenFrom, 0, .5, true );
new Tween( this, "_alpha", None.easeNone, 0, 100, .5, true );
}
else
{
_x = 0;
_alpha = 100;
}
OnShow();
}
public function OnShow():Void
{
}
public function Hide( bDoTween:Boolean, tweenTo:Number ):Void
{
ConsoleWindow.Trace("Hiding " + this);
if ( bDoTween )
{
new Tween( this, "_x", None.easeNone, this._x, tweenTo, .5, true );
new Tween( this, "_alpha", None.easeNone, 100, 0, .5, true );
}
else
{
this._x = -1000;// tweenTo;
this._alpha = 0;
}
OnHide();
}
public function OnHide():Void
{
}
public function GetScreenTabId():Number
{
return mScreenTabId;
}
public function GetScreenId():Number
{
return mScreenId;
}
public function CleanUpMoveClipList( list:Array ):Void
{
var length:Number = list.length;
for ( var i:Number = 0; i < length; i++ )
{
var mc:MovieClip = list[i];
//ConsoleWindow.Trace("Removing mc: " + mc);
mc.removeMovieClip();
}
}
public static function GetIndexFromElement( element, array ):Number
{
var length:Number = array.length;
for ( var i:Number = 0; i < length; i++ )
{
if ( element == array[i] )
{
return i;
}
}
ConsoleWindow.Trace("Can't find element: " + element);
return 0;
}
}