Flex 4 一个RandomLine特效的练习
2011-04-12 11:58
375 查看
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <!--[CDATA[ import mx.core.UIComponent; public var lineNum:Number=20; public var Parray:Array=new Array(); public var start:Boolean=false; public var xv:Array=new Array(); public var yv:Array=new Array(); public var xp:Array=new Array(); public var yp:Array=new Array(); public var xt:Array=new Array(); public var yt:Array=new Array(); public var time:Timer=new Timer(600); public var lineArray:Array=new Array(); public var index:Number=0; public var lineLength:Number=15; public var color:Array=new Array(); public function init():void { for(var i:Number=0;i<lineNum;i++) { xv.push(0); yv.push(0); xp.push(0); yp.push(0); xt.push(0); yt.push(0); color.push(Math.random()*0xffffff); } time.addEventListener(TimerEvent.TIMER,CreatePoint); time.start(); } public function getPoint():Point { return Point(new Point(Math.random()*this.width,Math.random()*this.height)); } public function CreatePoint(evt:TimerEvent):void { if(start==false) { this.addEventListener(Event.ENTER_FRAME,speed); start=!start; } for(var i:Number=0;i<lineNum;i++) { Parray[i]=getPoint(); } } public function speed(evt:Event):void { for(var i:Number=0;i<lineNum;i++) { xv[i] = xv[i] + (Parray[i].x - xp[i]) * 1.500000E-001; yv[i] = yv[i] + (Parray[i].y - yp[i]) * 1.500000E-001; xv[i] = xv[i]* 9.000000E-001; yv[i] = yv[i] * 9.000000E-001; xt[i]=xp[i]; yt[i]=yp[i]; xp[i] = xp[i] + xv[i]; yp[i] = yp[i] + yv[i]; darwLine(xt[i],yt[i],xp[i],yp[i],i); } } public function darwLine(startX:Number,startY:Number,endX:Number,endY:Number,i:Number):void { var compLine:UIComponent=new UIComponent(); var line : Shape = new Shape(); line.graphics.lineStyle(10, color[i], 1); line.graphics.moveTo(startX, startY); line.graphics.lineTo(endX, endY); compLine.addChild(line); this.addElement(compLine); if(lineArray.length>=lineLength) { if(index==lineLength) { index=0; } this.removeElement(lineArray[index]); lineArray[index++]=compLine; } else { lineArray.push(compLine); } } ]]--> </fx:Script> </s:Application>
这是我根据“一批老外的超牛25行代码参赛作品的源文件”中最短的一个项目制作而成,原来用as,我用flex。
相关文章推荐
- Flex:在LineChart图表中创建一个自定义的LinearAxis函数标签(Tip提示)的例子
- flex LineChart曲线图特效
- flex LineChart 特效
- Flex练习:写一个五子连珠游戏 Five And More
- 找到一个Flex中LineChart很好的学习博客
- Flex中给Tool tips添加一个很Cool的动画特效的例子源码
- Flex特效的一个小示例(state、呈示器、mxml外观用法)
- 一个有意思的编程练习网站
- Flex真真的分页,一个页面支持多次复用
- flex 特效 很好很强大
- python基础练习----输入一个奇数,然后判断最少几个 9 除于该数的结果为整数
- Vue写一个标签切换特效
- flex 特效--旋转tooltip
- 这几天做一个项目练习,汉字中文存入mysql就乱码
- 一个简单的打字练习程序 rand用法
- 一个Codility上的练习遇到和预期结果不同的问题。
- 个人收藏的flex特效网址【经典中的极品】
- Flex <mx:DataGrid>在一个记录中支持换行显示
- Flex中如何利用titleIcon属性给Panel容器标题部添加一个ICON图标的例子
- Properties的一个练习,记录你使用该程序的次数