Forked from: Chang.Shu.Huai's WhycatTree1 Finish diff:27 WhycatTree2 forked from: WhycatTree1 import flash.Event.event.*; Chang.Shu.Hu.. forked:1favorite:0lines:54license : All rights reserved modified : 2012-04-14 11:27:34 Embed Tweet // forked from Chang.Shu.Huai's WhycatTree1 Finish // forked from Chang.Shu.Huai's WhycatTree1 const BILI:Number=0.5; package { import flash.display.Sprite; import flash.events.Event; public class FlashTest extends Sprite { private var Max_Level:Number=3; private var arr2:Array; private var level:Number=0; private var arr:Array; public function action(e:Event){ if(level<=Max_Level){ arr2=new Array(); level++; for each (var DL:DrawLine in arr){ DL.Draw(); addChild(DL); arr2.push(DL.Copy(true)); arr2.push(DL.Copy(false)); } arr=arr2; } } public function FlashTest() { arr=new Array(); arr.push(new DrawLine(250,300,-Math.PI/2,100)); addEventListener( Event.ENTER_FRAME, action ); // write as3 code here.. } } } import flash.display.Shape; class DrawLine extends Shape{ public var xx:Number; public var yy:Number; public var ang:Number; public var len:Number; private var delta_ang:Number=Math.PI/4; public function DrawLine(X:Number,Y:Number,A:Number,L:Number):void{ this.x=0; this.y=0; xx=X; yy=Y ang=A; len=L; } public function Draw():void{ graphics.lineStyle(1); graphics.moveTo(xx,yy); graphics.lineTo(xx+len*Math.cos(ang),yy+len*Math.sin(ang)); } public function Copy(positive:Boolean):DrawLine{ if(positive==true)return new DrawLine(xx+len*Math.cos(ang),yy+len*Math.sin(ang),ang+delta_ang,len*BILI) else return new DrawLine(xx+len*Math.cos(ang),yy+len*Math.sin(ang),ang-delta_ang,len*BILI) } } Code Fullscreen Preview Fullscreen Math.cos addEventListener Math.sin push Shape Math.PI Event.ENTER_FRAME Event Boolean Array Number sort new page view favorite forked pv409 WhycatTree2 in Green Random Chang.Shu.Huai forked:1 favorite:0lines:63 (diff:23)