WEB开发网
开发学院手机开发Symbian 开发 Symbian开发中滚动广告效果的制作方法 阅读

Symbian开发中滚动广告效果的制作方法

 2010-05-31 20:03:00 来源:WEB开发网   
核心提示:11 {12 delete iText;13 iText = NULL;14 }15 iPeriodicTimer->Cancel();// 由于Cperiodic 继承自CActive本身就是一个活动对象,因此在析构时要调用他的Cancel()方法,Symbian开发中滚动广告效果的制作方法(2),发送取消请求

11 {

12 delete iText;

13 iText = NULL;

14 }

15 iPeriodicTimer->Cancel();// 由于Cperiodic 继承自CActive本身就是一个活动对象,因此在析构时要调用他的Cancel()方法,发送取消请求

16 if (iPeriodicTimer)

17 {

18 delete iPeriodicTimer;

19 iPeriodicTimer = NULL;

20 }

21 }

22//用于设置文本内容函数的实现,对基类设置函数的封装

23void CScrollLabel::SetTextL(const TDesC& aText)

24 {

25 if (iText)

26 {

27 delete iText;

28 iText = NULL;

29 }

30 iText = aText.AllocL(); // 使用HbufC 本身的AllocL()方法完成内存空间的申请和内容的拷贝工作。

31 CEikLabel::SetTextL(*iText); // 调用基类的设置方法

32 }

33//判断是否要实现文本滚动

34TBool CScrollLabel::IsNeedScroll()

35 {

36 if (iText==NULL)

37 return EFalse;// 如果没有文本就无需滚动

38 if (iStarPoint.iX > -iLabelSize.iWidth) // 声明:是从右侧开始滚动

39 return ETrue;

40 return EFalse; // 默认是不需要滚动的

41 }

42

43void CScrollLabel::Start() // 启动滚动的函数,

44 {

45 if (iPeriodicTimer==NULL && IsNeedScroll()) // 判断启动的条件

46 {

47 iPeriodicTimer = CPeriodic::NewL(EPriorityNormal); // 构造定时器对象

48 iPeriodicTimer->Start(0, SCROLL_INTERVAL, TCallBack(Tick, this));// 第一个参数是0表示直接调用回调函数TcallBack(),第二个参数是两次回调函数之间的时间间隔

49 }

50 }

51

52TInt CScrollLabel::Tick(TAny* p)// 静态的函数,参数是任意类型的指针,可以进行强制类型转化

53 {

54 CScrollLabel* pThis = (CScrollLabel*)p; // 将p 强制类型转化成 CScrollLabel*

55 pThis->DoScroll(); // 调用执行滚动的函数

Tags:Symbian 开发 滚动

编辑录入:coldstar [复制链接] [打 印]
赞助商链接