Symbian开发中滚动广告效果的制作方法
2010-05-31 20:03:00 来源:WEB开发网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(); // 调用执行滚动的函数
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接