235 lines
7.4 KiB
ActionScript
235 lines
7.4 KiB
ActionScript
import flash.external.*;
|
|
import gfx.controls.TextInput;
|
|
import gfx.controls.Button;
|
|
import gfx.controls.CheckBox;
|
|
import mx.utils.Delegate;
|
|
import Screens.RecoverPasswordScreen;
|
|
|
|
class Screens.LoginScreen extends Screen
|
|
{
|
|
private var resetDatabase:Button;
|
|
private var recoverPassword:Button;
|
|
private var deleteAccountButton:Button;
|
|
private var changeHandleButton:Button;
|
|
private var registerAccount:Button;
|
|
private var login:Button;
|
|
private var disconnectFromServer:Button;
|
|
private var userNameEdit:TextInput;
|
|
private var passwordEdit:TextInput;
|
|
private var changeHandleNewHandleEditBox:TextInput;
|
|
private var savePassword:CheckBox;
|
|
private var saveUsername:CheckBox;
|
|
private var mcForgotUsername:MovieClip;
|
|
private var mcForgotPassword:MovieClip;
|
|
|
|
private var tfLoginFailed:TextField;
|
|
|
|
public function LoginScreen()
|
|
{
|
|
ConsoleWindow.Trace("Constructing LoginScreen");
|
|
|
|
mScreenId = ScreenID.LOGIN;
|
|
mScreenTabId = ScreenTab.ID_LOGIN;
|
|
|
|
tfLoginFailed._visible = false;
|
|
}
|
|
|
|
public function VOnFinishedLoading():Void
|
|
{
|
|
var self:LoginScreen = this;
|
|
|
|
//Add click event for buttons
|
|
resetDatabase.addEventListener("click", this, "f2c_ResetDatabase");
|
|
//mcForgotPassword.onPress = function() { self["recoverPasswordFunc"](); }
|
|
//recoverPassword.addEventListener("click", this, "recoverPasswordFunc");
|
|
deleteAccountButton.addEventListener("click", this, "f2c_DeleteAccount");
|
|
changeHandleButton.addEventListener("click", this, "f2c_ChangeHandle");
|
|
registerAccount.addEventListener("click", this, "f2c_RegisterAccountStateQuery");
|
|
login.addEventListener("click", this, "f2c_LoginToAccount");
|
|
disconnectFromServer.addEventListener("click", this, "f2c_DisconnectFromServer");
|
|
mcForgotPassword.onPress = Delegate.create( this, ShowForgotPassword );
|
|
mcForgotUsername.onPress = Delegate.create( this, ShowForgotUsername );
|
|
|
|
//Add callbacks for C++
|
|
ExternalInterface.addCallback("c2f_SetStateEnterCDKey", this, c2f_SetStateEnterCDKey);
|
|
ExternalInterface.addCallback("c2f_SetStateRegisterAccount", this, c2f_SetStateRegisterAccount);
|
|
ExternalInterface.addCallback("c2f_DeleteAccountResult", this, c2f_DeleteAccountResult);
|
|
ExternalInterface.addCallback("c2f_ChangeHandleResult", this, c2f_ChangeHandleResult);
|
|
ExternalInterface.addCallback("c2f_NotifyLoginResultFailure", this, c2f_NotifyLoginResultFailure);
|
|
ExternalInterface.addCallback("c2f_NotifyLoginResultSuccess", this, c2f_NotifyLoginResultSuccess);
|
|
|
|
super.VOnFinishedLoading();
|
|
}
|
|
|
|
public function GetUsername():String
|
|
{
|
|
return userNameEdit.text;
|
|
}
|
|
|
|
public function f2c_ResetDatabase():Void
|
|
{
|
|
ExternalInterface.call("f2c_ResetDatabase");
|
|
}
|
|
|
|
public function recoverPasswordFunc():Void
|
|
{
|
|
//_root.gotoAndPlay("RecoverPassword");
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.RECOVER_PASSWORD );
|
|
}
|
|
|
|
public function f2c_DeleteAccount():Void
|
|
{
|
|
ExternalInterface.call("f2c_DeleteAccount", userNameEdit.text, passwordEdit.text);
|
|
}
|
|
|
|
public function f2c_ChangeHandle():Void
|
|
{
|
|
ExternalInterface.call("f2c_ChangeHandle", userNameEdit.text, passwordEdit.text, changeHandleNewHandleEditBox.text);
|
|
}
|
|
|
|
public function f2c_RegisterAccountStateQuery():Void
|
|
{
|
|
ExternalInterface.call("f2c_RegisterAccountStateQuery", userNameEdit.text, passwordEdit.text);
|
|
// C++ will call either c2f_SetStateEnterCDKey or c2f_SetStateCreateAccount1
|
|
}
|
|
|
|
public function f2c_LoginToAccount():Void
|
|
{
|
|
tfLoginFailed._visible=false;
|
|
ExternalInterface.call("f2c_LoginToAccount", userNameEdit.text, passwordEdit.text, savePassword.selected);
|
|
//_root.gotoAndPlay("LoggingIn");
|
|
//LobbyInterface.Instance.ShowScreen( ScreenID.LOGGING_IN );
|
|
if ( LobbyInterface.Instance.IsInFlashMode() )
|
|
{
|
|
c2f_NotifyLoginResultSuccess();
|
|
}
|
|
}
|
|
|
|
public function f2c_DisconnectFromServer():Void
|
|
{
|
|
ExternalInterface.call("f2c_DisconnectFromServer");
|
|
}
|
|
|
|
public function c2f_SetStateEnterCDKey():Void
|
|
{
|
|
//_root.gotoAndPlay("EnterCDKey");
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.ENTER_CD_KEY );
|
|
}
|
|
|
|
public function c2f_SetStateRegisterAccount():Void
|
|
{
|
|
//_root.gotoAndPlay("RegisterAccount");
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.REGISTER_ACCOUNT_PERSONAL );
|
|
}
|
|
|
|
public function c2f_DeleteAccountResult(resultIdentifier:String):Void
|
|
{
|
|
switch (resultIdentifier)
|
|
{
|
|
case "UNKNOWN_USER":
|
|
// Unknown username
|
|
break;
|
|
case "SUCCESS":
|
|
// OK
|
|
break;
|
|
case "DATABASE_CONSTRAINT_FAILURE":
|
|
// Database error, maybe account was already deleted
|
|
break;
|
|
case "System_DeleteAccount_INVALID_PASSWORD":
|
|
// Bad password to delete this account
|
|
break;
|
|
}
|
|
|
|
if ( resultIdentifier != "SUCCESS" )
|
|
{
|
|
LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
|
|
}
|
|
}
|
|
|
|
public function c2f_ChangeHandleResult(resultIdentifier:String, oldHandle:String, newHandle:String):Void
|
|
{
|
|
switch (resultIdentifier)
|
|
{
|
|
case "UNKNOWN_USER":
|
|
// Unknown username
|
|
break;
|
|
case "SUCCESS":
|
|
{
|
|
// OK
|
|
userNameEdit.text=newHandle;
|
|
break;
|
|
}
|
|
case "DATABASE_CONSTRAINT_FAILURE":
|
|
// Database error, maybe account was already deleted
|
|
break;
|
|
case "Client_ChangeHandle_NEW_HANDLE_ALREADY_IN_USE":
|
|
break;
|
|
case "Client_ChangeHandle_INVALID_PASSWORD":
|
|
// Bad password to delete this account
|
|
break;
|
|
}
|
|
|
|
if ( resultIdentifier != "SUCCESS" )
|
|
{
|
|
LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
|
|
}
|
|
}
|
|
|
|
public function c2f_NotifyLoginResultFailure(reasonIdentifier:String, bannedReason:String, whenBanned:String, bannedExpiration:String ):Void
|
|
{
|
|
switch (reasonIdentifier)
|
|
{
|
|
case "Client_Login_HANDLE_NOT_IN_USE_OR_BAD_SECRET_KEY":
|
|
tfLoginFailed.text = "Handle not in use or bad secret key.";
|
|
break;
|
|
case "Client_Login_CANCELLED":
|
|
tfLoginFailed.text = "Login cancelled.";
|
|
break;
|
|
case "Client_Login_CABLE_NOT_CONNECTED":
|
|
tfLoginFailed.text = "Cable not connected.";
|
|
break;
|
|
case "Client_Login_NET_NOT_CONNECTED":
|
|
tfLoginFailed.text = "Net not connected.";
|
|
break;
|
|
case "Client_Login_BANNED":
|
|
tfLoginFailed.text = "User banned.";
|
|
// banned parameters used here, not otherwise
|
|
break;
|
|
case "Client_Login_CDKEY_STOLEN":
|
|
tfLoginFailed.text = "CDKEY stolen";
|
|
break;
|
|
case "Client_Login_EMAIL_ADDRESS_NOT_VALIDATED":
|
|
tfLoginFailed.text = "Email address not validated.";
|
|
break;
|
|
case "Client_Login_BAD_TITLE_OR_TITLE_SECRET_KEY":
|
|
tfLoginFailed.text = "Bad title or title secret key.";
|
|
break;
|
|
}
|
|
|
|
//tfLoginFailed._visible = true;
|
|
|
|
LobbyInterface.Instance.CreateMessageBox(reasonIdentifier);
|
|
}
|
|
|
|
public function c2f_NotifyLoginResultSuccess( ):Void
|
|
{
|
|
LobbyInterface.Instance.SetLoginState( true );
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.PROFILE );
|
|
ConsoleWindow.Trace("AccountInfo.Instance = " + AccountInfo.Instance);
|
|
AccountInfo.Instance.GetAccountInfoFromServer();
|
|
}
|
|
|
|
public function ShowForgotUsername():Void
|
|
{
|
|
ConsoleWindow.Trace("show forgot username");
|
|
RecoverPasswordScreen.Instance.SetMode( false );
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.RECOVER_PASSWORD );
|
|
}
|
|
|
|
public function ShowForgotPassword():Void
|
|
{
|
|
ConsoleWindow.Trace("show forgot password");
|
|
RecoverPasswordScreen.Instance.SetMode( true );
|
|
LobbyInterface.Instance.ShowScreen( ScreenID.RECOVER_PASSWORD );
|
|
}
|
|
} |