< style="WIDTH: 317px; HEIGHT: 249px" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" height="249" width="317" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
最近做一个小项目需要用到这个效果,今天项目完成,将这个效果拿出与大家分享。原理其实就是使用一个Text(或者TextArea)控件,然后添加一个Move效果,使Text控件向上移动。其中关键的一点是:在creationComplete事件中获取控件高度,否则会出现高度误差偏大。源代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="complete()">
<mx:Script>
<![CDATA[
private function complete():void
{
move_up.yFrom = cs.height - 6; //"加6减6是为了首尾连接更加自然"
move_up.yTo = 0 - tt.height + 6; //同上
move_up.repeatCount = 0; //无限次重复
move_up.repeatDelay = 0; //重复时间,毫秒
move_up.duration = 6000; //滚动一次的时间,毫秒
move_up.play();
}
private function move_pause():void
{
move_up.pause(); //暂停
}
private function move_resume():void
{
move_up.resume(); //从暂停位置开始
}
]]>
</mx:Script>
<mx:Move id="move_up" target="{tt}" />
<mx:Panel width="250" height="200" layout="absolute" title="公告栏"
fontSize="13" horizontalCenter="0" verticalCenter="0">
<mx:Canvas id="cs" width="100%" height="100%" left="0" top="0"
verticalScrollPolicy="off" mouseOver="move_pause()" mouseOut="move_resume()">
<mx:Text id="tt" width="94%" horizontalCenter="0"
text="表面上看,文字由下向上滚动,其实是Text控件在滚动。" verticalCenter="0">
</mx:Text>
</mx:Canvas>
</mx:Panel>
</mx:Application>发表于 @ 2007年06月02日 22:06:00 | 评论( loading... ) | 举报| 收藏