开发学院手机开发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 定义 控件

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
更多精彩
    赞助商链接

    热点阅读
      焦点图片
        最新推荐
          精彩阅读