Init
This commit is contained in:
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user