最近做一个小项目需要用到这个效果,今天项目完成,将这个效果拿出与大家分享。原理其实就是使用一个Text(或者TextArea)控件,然后添加一个 Move效果,使Text控件向上移动。其中关键的一点是:在creationComplete事件中获取控件高度,否则会出现高度误差偏大。源代码如 下: flex中实现marquee效果(由下而上滚动)_xml<?xml version="1.0" encoding="utf-8"?>

flex中实现marquee效果(由下而上滚动)_xml<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 

flex中实现marquee效果(由下而上滚动)_xml    creationComplete="complete()">

flex中实现marquee效果(由下而上滚动)_xml    <mx:Script>

flex中实现marquee效果(由下而上滚动)_xml        <![CDATA[

flex中实现marquee效果(由下而上滚动)_xml            private function complete():void

flex中实现marquee效果(由下而上滚动)_xml            {

flex中实现marquee效果(由下而上滚动)_xml                move_up.yFrom = cs.height - 6;    //"加6减6是为 了首尾连接更加自然"

flex中实现marquee效果(由下而上滚动)_xml                move_up.yTo = 0 - tt.height + 6;  //同上

flex中实现marquee效果(由下而上滚动)_xml                move_up.repeatCount = 0; //无限次重复

flex中实现marquee效果(由下而上滚动)_xml                move_up.repeatDelay = 0; //重复时间,毫秒

flex中实现marquee效果(由下而上滚动)_xml                move_up.duration = 6000; //滚动一次的时间,毫秒

flex中实现marquee效果(由下而上滚动)_xml                move_up.play();

flex中实现marquee效果(由下而上滚动)_xml            }

flex中实现marquee效果(由下而上滚动)_xml            

flex中实现marquee效果(由下而上滚动)_xml            private function move_pause():void

flex中实现marquee效果(由下而上滚动)_xml            {

flex中实现marquee效果(由下而上滚动)_xml                move_up.pause();  //暂停

flex中实现marquee效果(由下而上滚动)_xml            }

flex中实现marquee效果(由下而上滚动)_xml            

flex中实现marquee效果(由下而上滚动)_xml            private function move_resume():void

flex中实现marquee效果(由下而上滚动)_xml            {

flex中实现marquee效果(由下而上滚动)_xml                move_up.resume(); //从暂停位置开始

flex中实现marquee效果(由下而上滚动)_xml            }

flex中实现marquee效果(由下而上滚动)_xml        ]]>

flex中实现marquee效果(由下而上滚动)_xml    </mx:Script>

flex中实现marquee效果(由下而上滚动)_xml    <mx:Move id="move_up" target="{tt}" />

flex中实现marquee效果(由下而上滚动)_xml    <mx:Panel width="250" height="200" layout="absolute" title="公告 栏" 

flex中实现marquee效果(由下而上滚动)_xml        fontSize="13" horizontalCenter="0" verticalCenter="0">

flex中实现marquee效果(由下而上滚动)_xml        <mx:Canvas id="cs" width="100%" height="100%" left="0" top="0" 

flex中实现marquee效果(由下而上滚动)_xml            verticalScrollPolicy="off" mouseOver="move_pause()" mouseOut="move_resume()">

flex中实现marquee效果(由下而上滚动)_xml            <mx:Text id="tt" width="94%" horizontalCenter="0"

flex中实现marquee效果(由下而上滚动)_xml                text="表面上看,文字由下向上滚动,其实是Text控件在滚动。" verticalCenter="0">

flex中实现marquee效果(由下而上滚动)_xml            </mx:Text>

flex中实现marquee效果(由下而上滚动)_xml        </mx:Canvas>

flex中实现marquee效果(由下而上滚动)_xml    </mx:Panel>

flex中实现marquee效果(由下而上滚动)_xml</mx:Application>