Actionscript 3 AS3拖动始终捕捉回原始位置?

Actionscript 3 AS3拖动始终捕捉回原始位置?,actionscript-3,drag-and-drop,Actionscript 3,Drag And Drop,制作一个带有滑块的简单应用程序,该滑块可以更改文本框值,但每当我放下滑块时,它都会捕捉回其0位置。我需要它保持原位。请帮忙 代码: 试试这个 theroot.settings_but.phone1.slider.addEventListener(MouseEvent.MOUSE_DOWN, slide); public function slide(e:MouseEvent):void { theroot.settings_but.phone1.

制作一个带有滑块的简单应用程序,该滑块可以更改文本框值,但每当我放下滑块时,它都会捕捉回其0位置。我需要它保持原位。请帮忙

代码:

试试这个

     theroot.settings_but.phone1.slider.addEventListener(MouseEvent.MOUSE_DOWN, slide);


     public function slide(e:MouseEvent):void
     {
        theroot.settings_but.phone1.slider.removeEventListener(MouseEvent.MOUSE_DOWN, slide);
        stage.addEventListener(MouseEvent.MOUSE_UP, dragstop);
        var bounds:Rectangle = new Rectangle(0,27,550,0);
        theroot.settings_but.phone1.slider.startDrag(false, bounds);
 theroot.settings_but.phone1.slider.addEventListener(Event.ENTER_FRAME,changetextbox);    
     }

     public function dragstop(e:MouseEvent):void
     {
        theroot.settings_but.phone1.slider.stopDrag();
        stage.removeEventListener(MouseEvent.MOUSE_UP, dragstop);
        trace("what", e.target.x, e.currentTarget, e.target.name) //  returns proper x value, [object Stage], slider
        trace("almost", theroot.settings_but.phone1.slider.x);// returns proper x value           
        trace("last", theroot.settings_but.phone1.slider.x); //returns proper x value                    theroot.settings_but.phone1.slider.removeEventListener(Event.ENTER_FRAME,changetextbox);  
      theroot.settings_but.phone1.slider.addEventListener(MouseEvent.MOUSE_DOWN, slide);
     }

     public function changetextbox(e:Event):void
     {
        trace(theroot.settings_but.phone1.slider.x) //returns proper x value
        theroot.settings_but.phone1txt.text = (Math.floor(((theroot.settings_but.phone1.slider.x) / 550) * 40));
     }

问题是事件冒泡到主MC,这导致带滑块的MC转到第0帧


谢谢你的帮助

对不起,还是不行,如果我在除滑块mc之外的任何位置释放鼠标,它将保持在原位,直到我单击屏幕上的任何其他位置。然后,它会弹回来。非常令人沮丧。我想问题一定是在代码的其他地方发生的。这个看起来不错。
     theroot.settings_but.phone1.slider.addEventListener(MouseEvent.MOUSE_DOWN, slide);


     public function slide(e:MouseEvent):void
     {
        theroot.settings_but.phone1.slider.removeEventListener(MouseEvent.MOUSE_DOWN, slide);
        stage.addEventListener(MouseEvent.MOUSE_UP, dragstop);
        var bounds:Rectangle = new Rectangle(0,27,550,0);
        theroot.settings_but.phone1.slider.startDrag(false, bounds);
 theroot.settings_but.phone1.slider.addEventListener(Event.ENTER_FRAME,changetextbox);    
     }

     public function dragstop(e:MouseEvent):void
     {
        theroot.settings_but.phone1.slider.stopDrag();
        stage.removeEventListener(MouseEvent.MOUSE_UP, dragstop);
        trace("what", e.target.x, e.currentTarget, e.target.name) //  returns proper x value, [object Stage], slider
        trace("almost", theroot.settings_but.phone1.slider.x);// returns proper x value           
        trace("last", theroot.settings_but.phone1.slider.x); //returns proper x value                    theroot.settings_but.phone1.slider.removeEventListener(Event.ENTER_FRAME,changetextbox);  
      theroot.settings_but.phone1.slider.addEventListener(MouseEvent.MOUSE_DOWN, slide);
     }

     public function changetextbox(e:Event):void
     {
        trace(theroot.settings_but.phone1.slider.x) //returns proper x value
        theroot.settings_but.phone1txt.text = (Math.floor(((theroot.settings_but.phone1.slider.x) / 550) * 40));
     }