Obfuscated Slider shapevent forked:1favorite:3lines:31license : MIT License modified : 2009-11-17 02:27:52 Embed Tweet package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; public class FlashTest extends Sprite { public function FlashTest() { var txt:TextField = TextField(addChild(new TextField())); txt.text = "drag circle"; var slider:MovieClip = makeSlider(); slider.addEventListener(Event.CHANGE, function(evt:Event):void{ trace(evt.currentTarget.percent); txt.text = evt.currentTarget.percent; }); } private function makeSlider():MovieClip{ var slider:MovieClip = MovieClip(addChild(new MovieClip())); var circle:Sprite = Sprite(slider.addChild(new Sprite())); with (circle.graphics) beginFill(0x000000), drawCircle(0,0,10); var line:Shape = Shape(slider.addChild(new Shape())); with (line.graphics) lineStyle(0,0x000000), lineTo(0, 100); slider.x = slider.y = 100; circle.addEventListener(MouseEvent.MOUSE_DOWN, function(evt:Event):void{ evt.currentTarget.startDrag(false, new Rectangle(0,0,0,100)), slider.addEventListener(Event.ENTER_FRAME, onChange) }); var stopIt:Function = function():void{ stopDrag(), slider.removeEventListener(Event.ENTER_FRAME, onChange) }; stage.addEventListener(Event.MOUSE_LEAVE, stopIt); stage.addEventListener(MouseEvent.MOUSE_UP, stopIt); return slider; } private function onChange(evt:Event):void { evt.currentTarget.percent = evt.currentTarget.getChildAt(0).y / 100, evt.currentTarget.dispatchEvent(new Event(Event.CHANGE)) } } } Code Fullscreen Preview Fullscreen dizgid mi-ca : sliderUI, atimoda : slider UI, slider MovieClip Event.CHANGE stopDrag startDrag Shape dispatchEvent Event.MOUSE_LEAVE getChildAt addEventListener removeEventListener graphics TextField MouseEvent.MOUSE_UP MouseEvent.MOUSE_DOWN drawCircle text Event addChild trace beginFill sort new page view favorite forked pv749 Obfuscated Slider - without 'v.. 9re forked:0 favorite:6lines:36 (diff:64) tag: this with 勉強