WEB开发网
开发学院手机开发Symbian 开发 Symbian自定义控件—如何实现跑马灯效果 阅读

Symbian自定义控件—如何实现跑马灯效果

 2010-10-20 08:00:26 来源:WEB开发网   
核心提示:网上的算法很多,但我只提供一个最笨,Symbian自定义控件—如何实现跑马灯效果,最简单,但最有效的方法去做:比如你要一行要显示4个字母的长度,LABEL1,LABEL2,显示的信息为"ABCDE",1秒钟为其更新速度那么我们可以紧挨着放置4个LABEL

网上的算法很多,但我只提供一个最笨,最简单,但最有效的方法去做:

比如你要一行要显示4个字母的长度,显示的信息为"ABCDE",1秒钟为其更新速度

那么我们可以紧挨着放置4个LABEL,LABEL1,LABEL2,LABEL3,LABEL4设置好他们的位置

然后算法如下:

1.获取要显示的信息并存入数组里

TBuf<10> iSourceData = _L("ABCDE");

CDesCArray* aDataArray = new (Eleave) CDesCArrayFlat(10);

CleanupStack::PushL(aDataArray);

for(TInt i = 0; i< P>

{

aDataArray->AppendL(iSourceData[i]);

}

2.以下为跑马灯的具体实现:

在头文件定义:

TInt j = 0;

TInt a=0;b=1;c=2;d=3;

以下需放在活动对象的RunL()里执行

if(a < aDataArray->Count())

{

LABEL1->SetTextL((*aDataArray)[a]);

}

else

{

LABEL1->SetTextL(_L(""));

}

if(a < aDataArray->Count()+2)

{

a++;

}

else

{

a=0;

}

if(b < aDataArray->Count())

{

LABEL2->SetTextL((*aDataArray)[b]);

}

else

{

LABEL2->SetTextL(_L(""));

}

if(b< aDataArray->Count()+2)

{

b++;

}

else

{

b=0;

}

if(c< aDataArray->Count())

{

LABEL3->SetTextL((*aDataArray)[c]);

}

else

{

LABEL3->SetTextL(_L(""));

}

if(c< aDataArray->Count()+2)

{

c++;

}

else

{

c=0;

}

if(d< aDataArray->Count())

{

LABEL4->SetTextL((*aDataArray)[d]);

}

else

{

LABEL4->SetTextL(_L(""));

}

if(d< aDataArray->Count()+2)

{

d++;

}

else

{

d=0;

}

waitOneSend(); //等待一秒钟的操作

记得退出页面得调用活动对象Cancel()方法

Tags:Symbian 定义 控件

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