Flex 文字滚动
发布时间:2020-12-15 04:02:08 所属栏目:百科 来源:网络整理
导读:工作需要,简单demo,直接上图。 遇到的几处需要注意的地方: 1、在所有的 label、box 等 容器啥的加载ok后在执行 move 移动,否则 没效果。愿意貌似 在于渲染的顺序上,未深究。 2、移动的组建 label 或者 text ,他们可以根据文字的多少来取到该组件的宽度
工作需要,简单demo,直接上图。 遇到的几处需要注意的地方: 1、在所有的 label、box 等 容器啥的加载ok后在执行 move 移动,否则 没效果。愿意貌似 在于渲染的顺序上,未深究。 2、移动的组建 label 或者 text ,他们可以根据文字的多少来取到该组件的宽度。不过去长度之前先要调用 ?lab.validateNow(),详见API 调用这个方法后,取到的值,才准确。代码中有注释。 原代码如下。 Flex 代码 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute"> <mx:Script> <![CDATA[ import mx.containers.Box; import mx.containers.HBox; import mx.containers.VBox; import mx.controls.Button; import mx.controls.Label; import mx.controls.Spacer; import mx.core.UIComponent; import mx.effects.Move; import mx.effects.easing.Linear; private var box:VBox = new VBox(); private var labelHieght:int = 30; private function init():void { box.direction = "horizontal"; box.x = 50; box.y = 0; box.height = 30; box.width = 400; box.setStyle('borderColor',0xff0000); box.setStyle('borderStyle','solid'); box.setStyle('borderThickness',2); this.addChild(box); lab1.text = "付款申请单--xx冶金有限公司xx冶金有限公司"; lab2.text = "2013-10-24"; lab3.text = "进行中..."; box.addChild(hbox); this.addLabelMove(lab1); } private var amove:Move ; private function addLabelMove(lab1:Label):void { var move:Move = new Move(); move.target = lab1; move.easingFunction = Linear.easeNone;//匀速移动 lab1.addEventListener(MouseEvent.MOUSE_OUT,move_stop); lab1.addEventListener(MouseEvent.MOUSE_OVER,move_do); // move.xBy = -1000;//按照像素移动 lab1.validateNow();//注意要调用此方法后才能 使用 lab.textWidth 的值。 move.xFrom = 240+30;//开始位置。 move.xTo = 0-lab1.textWidth;//终止位置。 move.repeatCount = 0; //循环次数 0为不限 move.repeatDelay = 0; //循环间隔时间 move.duration = (lab1.textWidth /50)*1000; //滚动一次所需要的时间 move.play(); //开始移动 amove = move; } /** * 鼠标移开 播放。 */ private function move_stop(e:MouseEvent):void { amove.resume(); } /** * 鼠标移入 暂停 */ private function move_do(e:MouseEvent):void { amove.pause(); } ]]> </mx:Script> <mx:HBox id="hbox" width="100%" verticalAlign="bottom" verticalScrollPolicy="off" horizontalScrollPolicy="off"> <mx:Canvas id="cs" width="100%" height="100%" left="0" top="0" verticalScrollPolicy="off" horizontalScrollPolicy="off" > <mx:Label id="lab1" truncateToFit="false" mouseChildren="false" useHandCursor="true" buttonMode="true" > </mx:Label> </mx:Canvas> <mx:Label id="lab2" width="20%"/> <mx:Label id="lab3" width="20%"/> </mx:HBox> </mx:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |