105 lines
2.1 KiB
ActionScript
105 lines
2.1 KiB
ActionScript
|
|
|
|
import mx.utils.Delegate;
|
|
|
|
class PageNavigator extends MovieClip
|
|
{
|
|
[Inspectable(name = "Page Total", type = "Number", defaultValue = 1)]
|
|
private var mTotalPages:Number;
|
|
|
|
private var mcLeftArrow:MovieClip;
|
|
private var mcRightArrow:MovieClip;
|
|
private var tfPage:TextField;
|
|
private var mCurPage:Number;
|
|
|
|
private var mNextPageCallback:Function;
|
|
private var mPreviousPageCallback:Function;
|
|
|
|
private var mIsEnabled:Boolean;
|
|
|
|
public function PageNavigator()
|
|
{
|
|
mCurPage = 1;
|
|
mTotalPages = 1;
|
|
mIsEnabled = true;
|
|
}
|
|
|
|
public function onLoad():Void
|
|
{
|
|
OnPageChanged();
|
|
|
|
mcRightArrow.onPress = Delegate.create( this, NextPage );
|
|
mcLeftArrow.onPress = Delegate.create( this, PreviousPage );
|
|
}
|
|
|
|
public function AddCallbacks( _onNextPage:Function, _onPreviousPage:Function )
|
|
{
|
|
mNextPageCallback = _onNextPage;
|
|
mPreviousPageCallback = _onPreviousPage;
|
|
|
|
ConsoleWindow.Trace( "Adding calls: " + _onNextPage + ", " + _onPreviousPage );
|
|
}
|
|
|
|
public function Disable():Void
|
|
{
|
|
mIsEnabled = false;
|
|
}
|
|
|
|
public function Enable():Void
|
|
{
|
|
mIsEnabled = true;
|
|
}
|
|
|
|
public function SetTotalPages( _total ):Void
|
|
{
|
|
mTotalPages = _total;
|
|
OnPageChanged();
|
|
_visible = ( mTotalPages > 0 );
|
|
|
|
}
|
|
|
|
public function GoToPage( _page:Number ):Void
|
|
{
|
|
if ( _page > 0 && _page <= mTotalPages )
|
|
{
|
|
mCurPage = 1;
|
|
OnPageChanged();
|
|
}
|
|
}
|
|
|
|
private function NextPage():Void
|
|
{
|
|
if ( mIsEnabled && mCurPage + 1 <= mTotalPages )
|
|
{
|
|
mCurPage++;
|
|
OnPageChanged();
|
|
mNextPageCallback.call();
|
|
}
|
|
}
|
|
|
|
public function PreviousPage():Void
|
|
{
|
|
if ( mIsEnabled && mCurPage - 1 > 0 )
|
|
{
|
|
mCurPage--;
|
|
OnPageChanged();
|
|
mPreviousPageCallback.call();
|
|
}
|
|
}
|
|
|
|
private function OnPageChanged():Void
|
|
{
|
|
tfPage.text = String(mCurPage) + " OF " + String(mTotalPages);
|
|
mcLeftArrow._visible = true;
|
|
mcRightArrow._visible = true;
|
|
if ( mCurPage == mTotalPages )
|
|
{
|
|
mcRightArrow._visible = false;
|
|
}
|
|
if ( mCurPage == 1 )
|
|
{
|
|
mcLeftArrow._visible = false;
|
|
}
|
|
}
|
|
|
|
} |