This commit is contained in:
2025-11-24 14:19:51 +05:30
commit f5c1412b28
6734 changed files with 1527575 additions and 0 deletions

View File

@ -0,0 +1,192 @@
import flash.external.*;
import gfx.controls.TextInput;
import gfx.controls.Button;
import mx.utils.Delegate;
class Screens.ChangePhoto extends Screen
{
private var btnBack:Button;
private var btnAcceptPhoto:Button;
private var tfUsername:TextField;
private var mcProfileImage:MovieClip;
private var mcImageSelector:MovieClip;
private var mImageList:Array;
private var mCurrentPage:Number;
private var mcPageNavigator:PageNavigator;
private var mSelectedIndex:Number;
public static var cFirstImageX:Number = 0;
public static var cFirstImageY:Number = -120;
public static var cImageDeltaX:Number = 40;
public static var cImageDeltaY:Number = 40;
public static var cImagesPerRow:Number = 5;
public static var cImagesPerPage:Number = 15;
public function ChangePhoto()
{
ConsoleWindow.Trace("Constructing ChangePhoto");
mScreenId = ScreenID.CHANGE_PHOTO;
mScreenTabId = ScreenTab.ID_PROFILE;
mImageList = new Array();
mCurrentPage = 0;
mSelectedIndex = -1;
}
public function VOnFinishedLoading():Void
{
//Add click event for buttons
btnBack.addEventListener("click", this, "Back");
btnAcceptPhoto.addEventListener("click", this, "AcceptPhoto");
super.VOnFinishedLoading();
}
public function OnShow():Void
{
mcImageSelector._visible = false;
tfUsername.text = LobbyInterface.Instance.GetUsername();
if ( !mcProfileImage.mcImageContainer.mcImage )
{
var imageIndex:Number = LobbyInterface.Instance.GetProfileImageIndex();
mcProfileImage.attachMovie( "ProfileImage" + imageIndex, "mcImage", mcProfileImage.getNextHighestDepth() );
}
mSelectedIndex = -1;
mcImageSelector._visible = false;
if ( mImageList.length == 0 )
{
AddImages();
}
else
{
ShowPage( mCurrentPage );
}
}
public function AddImages():Void
{
for ( var i:Number = 1; i <= 35; i++ )
{
var profileImage:MovieClip = attachMovie( "ProfileImage1", "ProfileImage" + i, getNextHighestDepth() );
profileImage._visible = false;
profileImage._width = mcImageSelector._width;
profileImage._height = mcImageSelector._height;
ConsoleWindow.Trace("Adding image " + + profileImage);
profileImage.tfTemp.text = mImageList.length;
mImageList.push( profileImage );
var self:ChangePhoto = this;
profileImage.onPress = function() { self.OnSelectImage( this ); }
}
mcImageSelector.swapDepths( getNextHighestDepth() );
mcPageNavigator.AddCallbacks( Delegate.create( this, NextPage ), Delegate.create( this, PreviousPage ) );
mcPageNavigator.SetTotalPages( Math.ceil( mImageList.length / cImagesPerPage ) );
ShowPage( 1 );
}
public function OnSelectImage( _profileImage:MovieClip ):Void
{
var index:Number = Number( _profileImage._name.substring( 12, _profileImage._name.length ) ) - 1;
ConsoleWindow.Trace("Selected: " + _profileImage + ", index = " + index);
if ( index != mSelectedIndex )
{
mSelectedIndex = index;
mcImageSelector._x = _profileImage._x;
mcImageSelector._y = _profileImage._y;
mcImageSelector._visible = true;
}
}
public function NextPage():Void
{
ShowPage( mCurrentPage + 1);
}
public function PreviousPage():Void
{
ShowPage( mCurrentPage - 1 );
}
public function ShowPage( _page:Number ):Void
{
if ( ( _page - 1 ) * cImagesPerPage <= mImageList.length && _page != mCurrentPage )
{
if ( mCurrentPage > 0 )
{
HidePage( mCurrentPage );
}
ConsoleWindow.Trace("Showing page " + _page);
mCurrentPage = _page;
TogglePageVisibility( mCurrentPage, true );
//if user selected an image from this new page, we show the selector again at that image
if ( mSelectedIndex >= ( _page - 1 ) * cImagesPerPage && mSelectedIndex < _page * cImagesPerPage )
{
mcImageSelector._visible = true;
}
}
}
public function HidePage( _page:Number ):Void
{
if ( ( _page-1 ) * cImagesPerPage <= mImageList.length )
{
mcImageSelector._visible = false;
ConsoleWindow.Trace("Hiding page " + _page);
TogglePageVisibility( _page, false );
}
}
private function TogglePageVisibility( _page:Number, _visibleState:Boolean ):Void
{
var startIndex:Number = _page * cImagesPerPage - ( cImagesPerPage );
var endIndex:Number = startIndex + cImagesPerPage;
for ( var i:Number = 0; i < cImagesPerPage; i++ )
{
var row:Number = Math.floor( i / cImagesPerRow ) + 1;
var col:Number = ( i % cImagesPerRow ) + 1;
var profileImage:MovieClip = mImageList[startIndex+i];
if ( !profileImage )
{
break;
}
profileImage._visible = _visibleState;
if ( _visibleState )
{
profileImage._x = cFirstImageX + (col-1) * (profileImage._width + cImageDeltaX);
profileImage._y = cFirstImageY + (row - 1) * (profileImage._height + cImageDeltaY);
//ConsoleWindow.Trace("Show profile image: " + profileImage + " at " + row + ", " + col);
}
else
{
}
//ConsoleWindow.Trace("x, y = " + profileImage._x + ", " + profileImage._y);
}
}
public function Back():Void
{
//LobbyInterface.Instance.ShowScreen( ScreenID.PROFILE );
LobbyInterface.Instance.ShowLastScreen();
}
public function AcceptPhoto():Void
{
if ( mSelectedIndex >= 0 && mSelectedIndex < mImageList.length )
{
//TODO: tell c++ user changed photo to a new index
}
}
}