说实话他的作品确实很精彩,看过下面的网址就知道了
http://lab.andre-michelle.com/
每一个作品都凝聚了作者不少的心血,于是对像我这样刚入门不久的人来说,看起来就有点费劲,贴上来也是希望在大家的帮助下能把源文件分析得透彻一点,这样也有利于自己水平的提高。
演示地址: http://www.healdream.com/blog/upload/curtain.swf
http://lab.andre-michelle.com/
每一个作品都凝聚了作者不少的心血,于是对像我这样刚入门不久的人来说,看起来就有点费劲,贴上来也是希望在大家的帮助下能把源文件分析得透彻一点,这样也有利于自己水平的提高。
演示地址: http://www.healdream.com/blog/upload/curtain.swf
class Strings { static var MAINNODES_NUM: Number = 6; static var STRINGS_NUM: Number = 20;//定义线条数 private var timeline: MovieClip; private var mainNodes: Array; private var stringClips: Array; function Strings( timeline: MovieClip ) { this.timeline = timeline; init(); } private function init( Void ): Void { //-- Main Nodes (height) var dh: Number = 400 / ( MAINNODES_NUM - 1 ); mainNodes = new Array; var mainNode: Object; for( var i = 0 ; i < MAINNODES_NUM ; i++ ) { // cx: center X mainNode = { cx: 200, cy: i * dh }; mainNode.ra = Math.random() * Math.PI * 2; mainNode.xa = Math.random() * Math.PI * 2; mainNode.ya = Math.random() * Math.PI * 2; mainNodes.push( mainNode ); } //-- String Nodes stringClips = new Array; for( var s = 0 ; s < STRINGS_NUM ; s++ ) { stringClips[s] = timeline.createEmptyMovieClip( s.toString(), s ); } } function render(): Void { var sin: Function = Math.sin; var cos: Function = Math.cos; var n: Number = MAINNODES_NUM; var i: Number; var dx: Number; var dy: Number; var qi: Number; var mainNode: Object; var stringClip: MovieClip; var moveTo: Boolean = true; while( --n > -1 ) { mainNode = mainNodes[n]; mainNode.x = cos( mainNode.ra ) * sin( mainNode.xa ) * 100; if( n > 0 && !moveTo ) { mainNode.y = sin( mainNode.ra ) * cos( mainNode.ya ) * 100; } else { mainNode.y = 0; } //-- random rotation mainNode.ra += Math.random() / 75 + .005; mainNode.xa += Math.random() / 75 + .006; mainNode.ya += Math.random() / 75 + .007; i = STRINGS_NUM; dx = mainNode.x / ( i - 1 ) * 2; dy = mainNode.y / ( i - 1 ) * 2; while( --i > -1 ) { //-- fake a 3D effect by Quad.easeOut qi = i * i / STRINGS_NUM; stringClip = stringClips[i]; if( moveTo ) { stringClip.clear(); stringClip.lineStyle( 0, 0xF0F3E0, 10 + qi * ( 90 / STRINGS_NUM ) ); stringClip.moveTo( stringClip.px = mainNode.cx + mainNode.x - dx * qi, stringClip.py = mainNode.cy + mainNode.y - dy * qi ); } else if( n > 0 ) { var px = stringClip.px; var py = stringClip.py; var mx = ( px + ( stringClip.px = mainNode.cx + mainNode.x - dx * qi ) ) / 2; var my = ( py + ( stringClip.py = mainNode.cy + mainNode.y - dy * qi ) ) / 2; stringClip.curveTo( px, py, mx, my ); } else { stringClip.curveTo( stringClip.px, stringClip.py, mainNode.cx + mainNode.x - dx * qi, 0 ); } } moveTo = false; } } } |
源文件地址:http://www.healdream.com/blog/upload/curtain.fla