stop(); import fl.controls.Slider; import fl.events.SliderEvent; var hue:int=90; var sat:Number=1; var val:Number=1; var red:Number=0; var green:Number=1; var blue:Number=0; var mousedown:int=0; var zone_transform:Transform=new Transform(CentralZoneColor1); var zone_color_transform:ColorTransform = new ColorTransform(); zone_color_transform.color = (red*255 << 16) + (green*255 << 8) + blue*255; zone_transform.colorTransform=zone_color_transform; var srv_ip:String=this.root.loaderInfo.parameters['srv_ip']; var srv_port:int=int(this.root.loaderInfo.parameters['srv_port']); //var srv_ip = '192.168.0.60'; //var srv_port = 7777; sat_sl.addEventListener(SliderEvent.CHANGE, onChangeSat); val_sl.addEventListener(SliderEvent.CHANGE, onChangeVal); ClickZone1.addEventListener(MouseEvent.MOUSE_DOWN, onCursorMouseDown); ClickZone1.addEventListener(MouseEvent.MOUSE_UP, onCursorMouseUp); ClickZone1.addEventListener(MouseEvent.MOUSE_MOVE, onCursorMouseMove); ClickZone1.addEventListener(MouseEvent.MOUSE_OUT, onCursorMouseOut); var xml_socket = new XMLSocket(); var is_connected:int=0; xml_socket.addEventListener(Event.CONNECT, onXMLConnect); Security.loadPolicyFile("xmlsocket://srv_ip:843"); xml_socket.connect(srv_ip,srv_port); function onXMLConnect(result) { if (result) { is_connected=1; } } function HSVtoRGB():void { var chroma:Number=sat*val; var x:Number = chroma*(1.0 - Math.abs((hue/60.0)%2 - 1.0)); if (hue<60) { red=chroma; green=x; blue=0; } if (hue>=60&&hue<120) { red=x; green=chroma; blue=0; } if (hue>=120&&hue<180) { red=0; green=chroma; blue=x; } if (hue>=180&&hue<240) { red=0; green=x; blue=chroma; } if (hue>=240&&hue<300) { red=x; green=0; blue=chroma; } if (hue>=300) { red=chroma; green=0; blue=x; } red=red+val-chroma; green=green+val-chroma; blue=blue+val-chroma; } function onChange():void { HSVtoRGB(); zone_color_transform.color = (red*255 << 16) + (green*255 << 8) + blue*255; zone_transform.colorTransform=zone_color_transform; if (is_connected==1) { var XML_node=new XMLNode(3,"#"+dec2hex(int(red*255))+dec2hex(int(green*255))+dec2hex(int(blue*255))+"\n"); xml_socket.send(XML_node); } } function onCursorMouseDown(e:MouseEvent):void { mousedown=1; } function onCursorMouseUp(e:MouseEvent):void { mousedown=0; } function onCursorMouseOut(e:MouseEvent):void { mousedown=0; } function onCursorMouseMove(e:MouseEvent):void { if (mousedown==1) { var v_x:Number; var v_y:Number; var v_angle:Number; var v_length:Number; v_x = e.stageX - CircleCenter1.x; v_y = e.stageY - CircleCenter1.y; v_length = Math.sqrt(v_x*v_x + v_y*v_y); if(v_length < 20.0) { v_length = 1.0; v_angle = 0.0; } else { v_angle = Math.atan2(v_y, v_x); } HueSelector1.x = 98*Math.cos(v_angle) - HueSelector1.width/2 + CircleCenter1.x; HueSelector1.y = 98*Math.sin(v_angle) - HueSelector1.height/2 + CircleCenter1.y; hue = int((v_angle + Math.PI) * 180.0 / Math.PI); onChange(); } } function onChangeSat(e:SliderEvent):void { sat = (e.target.value / 255.0); onChange(); } function onChangeVal(e:SliderEvent):void { val = (e.target.value / 255.0); onChange(); } function dec2hex( d:int ):String { var c:Array = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; if (d>255) { d=255; } var l:int=d/16; var r:int=d%16; return c[l]+c[r]; }