⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animationcontrol.cpp

📁 a Animation control of symbian
💻 CPP
字号:
#include "Animationcontrol.h"

COggAnimation::COggAnimation()
: iBitmaps(10), iPause(100), iFrequency(2), iFirstBitmap(0), iStyle(0)
	{
	}

COggAnimation::~COggAnimation()
	{
	ClearBitmaps();
	}

void COggAnimation::ClearBitmaps() 
	{
	iBitmaps.ResetAndDestroy();
	}

void COggAnimation::SetBitmaps(TInt aFirstBitmap, TInt aNumBitmaps)
	{
	ClearBitmaps();
	iFirstBitmap = aFirstBitmap;
  
	for (TInt i = 0 ; i<aNumBitmaps ; i++)
		{
		CFbsBitmap* ibitmap= new(ELeave) CFbsBitmap;
		ibitmap->Load(iBitmapFile,aFirstBitmap+i);
		iBitmaps.AppendL(ibitmap);
		}

	iRedraw = ETrue;
	}

void COggAnimation::Start()
	{
	iCycle = 0;
	iRedraw = ETrue;
	}

void COggAnimation::Stop()
	{
	if (iCycle!=-1)
		{
		iCycle = -1;
		iRedraw = ETrue;
		}
	}

void COggAnimation::SetPause(TInt aPause)
{
  if (iPause!=aPause)
  {
    iPause= aPause;
    iCycle= 0;
    iRedraw= ETrue;
  }
}

void COggAnimation::SetFrequency(TInt aFrequency)
{
  if (aFrequency!=iFrequency)
  {
    iFrequency= aFrequency;
    iCycle= 0;
    iRedraw= ETrue;
  }
}

void COggAnimation::SetStyle(TInt aStyle)
	{
	if (iStyle != aStyle)
		{
		iStyle = aStyle;
		iRedraw = ETrue;
		iCycle = 0;
		}
	}

void COggAnimation::Cycle()
	{
	if ((iCycle<0) || !iVisible)
		return;

#if defined(SERIES60)
	if (iBitmaps.Count() <= 1)
		return;
#endif

	iCycle++;

	if (iCycle<iPause)
		return;

	TInt style = 1;
	if (iStyle == 1)
		style = 2;

	if ((iCycle-iPause)>=(iBitmaps.Count()*iFrequency*style))
		iCycle= 0;

	if (iCycle%iFrequency == 0)
		iRedraw = ETrue;
	}

void COggAnimation::Draw(CBitmapContext& aBitmapContext)
{
  if ((iBitmaps.Count() == 0) || (iFrequency<1))
	  return;

  TInt idx= 0;
  if (iCycle>=0 && iCycle-iPause>=0)
  {
    idx= ((iCycle-iPause)/iFrequency)%iBitmaps.Count();
    if (iStyle==1 && (iCycle-iPause)/iFrequency>=iBitmaps.Count()) 
      idx= iBitmaps.Count()- idx -1;
  }

  CFbsBitmap* b= iBitmaps[idx];
  aBitmapContext.BitBlt(TPoint(ix,iy),b,TRect(TPoint(0,0),b->SizeInPixels()));
}
/*
TBool COggAnimation::ReadArguments(TOggParser& p)
{
  TBool success= COggControl::ReadArguments(p);
  if (success && p.iToken==_L("Frequency")) {
    p.Debug(_L("Setting frequency."));
    TInt frequency;
    success= p.ReadToken(frequency);
    if (success) SetFrequency(frequency);
  }
  if (success && p.iToken==_L("Pause")) {
    p.Debug(_L("Setting pause."));
    TInt pause(100);
    success= p.ReadToken(pause);
    if (success) SetPause(pause);
  }
  if (success && p.iToken==_L("Bitmaps")) {
    p.Debug(_L("Settings bitmaps."));
    TInt first, num;
    success= p.ReadToken(first);
    if (success) 
      {
      success= p.ReadToken(num);
      if (success) 
        SetBitmaps(first,num);
      }
  }
  if (success && p.iToken==_L("Style")) {
    p.Debug(_L("Setting style."));
    TInt s;
    success= p.ReadToken(s);
    if (success) SetStyle(s);
  }
  return success;
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -