package org.Main{ import flash.display.MovieClip; import flash.events.*; import fl.events.ColorPickerEvent; import org.Geometria.*; import fl.controls.ComboBox; import fl.data.DataProvider; public class PolarMain extends MovieClip { private var curveArr:Array=new Array(); private var lineColor:uint=0; private var dp:DataProvider=new DataProvider(); public function PolarMain() { dp.addItem({label:"Rhodonea"}); dp.addItem({label:"Bifoliate"}); dp.addItem({label:"Butterfly"}); dp.addItem({label:"Hippopede"}); curves_box.dataProvider=dp; curves_box.addEventListener(Event.CHANGE,curve_func); line_pic.addEventListener(ColorPickerEvent.CHANGE, colorLine); start_bt.addEventListener(MouseEvent.CLICK,start_func); reset_bt.addEventListener(MouseEvent.CLICK,reset_func); } private function start_func(event:Event) { var currentCurve:PolarCurve=null; var args:Array=new Array(raggio_g.value,arg1.value,arg2.value); switch (curves_box.selectedLabel) { case "Rhodonea" : currentCurve=new Rhodonea(args); break; case "Bifoliate" : currentCurve=new Bifoliate(args); break; case "Butterfly" : currentCurve=new Butterfly(args); break; case "Hippopede" : currentCurve=new Hippopede(args); break; } currentCurve.setColor(lineColor); currentCurve.x=stage.stageWidth/2; currentCurve.y=stage.stageHeight/2-50; addChild(currentCurve); curveArr.push(currentCurve); currentCurve.disegna(); } private function reset_func(event:Event):void { if (curveArr.length>0) { var curve:PolarCurve=null; while ((curve=curveArr.pop())!=null) { curve.stoppa(); removeChild(curve); } } } private function colorLine(e:ColorPickerEvent):void { var cp:ColorPicker = e.target as ColorPicker; lineColor=cp.selectedColor; } private function setCurveSlider():void { arg1.enabled=true; arg2.enabled=true; switch (curves_box.selectedLabel) { case "Rhodonea" : // r raggio_g.maximum=150; raggio_g.minimum=0; raggio_g.snapInterval=2; raggio_g.tickInterval=10; // n arg1.maximum=10; arg1.minimum=1; arg1.snapInterval=1; arg1.tickInterval=1; // d arg2.maximum=10; arg2.minimum=1; arg2.snapInterval=1; arg2.tickInterval=1; break; case "Bifoliate" : // r raggio_g.maximum=150; raggio_g.minimum=0; raggio_g.snapInterval=2; raggio_g.tickInterval=10; // a arg1.maximum=5; arg1.minimum=1; arg1.snapInterval=0.5; arg1.tickInterval=1; arg2.enabled=false; break; case "Butterfly" : // r raggio_g.maximum=100; raggio_g.minimum=0; raggio_g.snapInterval=2; raggio_g.tickInterval=10; arg1.enabled=false; arg2.enabled=false; break; case "Hippopede" : // r raggio_g.maximum=10; raggio_g.minimum=0; raggio_g.snapInterval=0.5; raggio_g.tickInterval=1; // a arg1.maximum=10; arg1.minimum=1; arg1.snapInterval=0.5; arg1.tickInterval=1; // b arg2.maximum=10; arg2.minimum=1; arg2.snapInterval=0.5; arg2.tickInterval=1; break; } raggio_g.value=raggio_g.minimum; arg1.value=arg1.minimum; arg2.value=arg2.minimum; } private function curve_func(e:Event):void { //var cb:ComboBox = e.target as ComboBox; setCurveSlider(); } } }