Files
SLikeNet/Samples/Lobby2ClientGFx3.0/Resources/Classes/Screens/EnterCDKeyScreen.as
2025-11-24 14:19:51 +05:30

89 lines
2.7 KiB
ActionScript

import flash.external.*;
import gfx.controls.TextInput;
import gfx.controls.Button;
class Screens.EnterCDKeyScreen extends Screen
{
private var enterCdKeyOKButton:Button;
private var cancelButton:Button;
private var cdKeyEditBox:TextInput;
private var tfFailedMsg:TextField;
public function EnterCDKeyScreen()
{
ConsoleWindow.Trace("Constructing EnterCDKeyScreen");
mScreenId = ScreenID.ENTER_CD_KEY;
mScreenTabId = ScreenTab.ID_CD_KEY;
tfFailedMsg._visible = false;
}
public function VOnFinishedLoading():Void
{
//Add click event for buttons
enterCdKeyOKButton.addEventListener("click", this, "f2c_CheckCDKey");
cancelButton.addEventListener("click", this, "Cancel");
//Add callbacks for C++
ExternalInterface.addCallback("c2f_CheckCDKeyResult", this, c2f_CheckCDKeyResult);
super.VOnFinishedLoading();
}
public function f2c_CheckCDKey():Void
{
tfFailedMsg._visible = false;
ConsoleWindow.Trace("cdKeyEditBox.text = " + cdKeyEditBox.text);
ExternalInterface.call("f2c_CheckCDKey", cdKeyEditBox.text);
}
public function Cancel():Void
{
ConsoleWindow.Trace("EnterCDKeyScreen calling login screen");
LobbyInterface.Instance.ShowScreen( ScreenID.LOGIN );
}
public function c2f_CheckCDKeyResult(reasonIdentifier:String, userUsedBy:String, activationDate:String, wasStolen:Boolean, usable:Boolean):Void
{
switch (reasonIdentifier)
{
case "SUCCESS":
if (usable==true)
{
// if usable==true, we're ok
ConsoleWindow.Trace("RegisterAccount?");
//_root.gotoAndPlay("RegisterAccount");
LobbyInterface.Instance.ShowScreen( ScreenID.REGISTER_ACCOUNT_PERSONAL );
}
else if (wasStolen==true)
{
ConsoleWindow.Trace("account stolen?");
// If wasStolen==true, this cd key was stolen. Display appropriate error message and ask user to reenter
}
else
{
ConsoleWindow.Trace("cd key already in used");
// CD key already used. Display appropriate error message and ask user to reenter
}
break;
case "CDKey_GetStatus_TITLE_NOT_IN_USE":
// Internal error, just display bad title
break;
case "CDKey_GetStatus_UNKNOWN_CD_KEY":
tfFailedMsg.text = "Unknown CD KEY";
//tfFailedMsg._visible = true;
// Most common case, CD key was mistyped. Display appropriate error message and ask user to reenter
break;
case "REQUIRED_TEXT_IS_EMPTY":
tfFailedMsg.text = "PLEASE ENTER CD KEY";
//tfFailedMsg._visible = true;
// Field was blank
break;
}
if ( reasonIdentifier != "SUCCESS" )
{
LobbyInterface.Instance.CreateMessageBox( reasonIdentifier );
}
}
}