2013-12-21 60 views
0

制作一个简单的应用程序,其中包含一个可更改文本框值的滑块,但每当我放下滑块时,它都会回到其0位置。我需要它留在原地。请帮忙!AS3拖动总是回到原来的位置?

代码:

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


     public function slide(e:MouseEvent):void 
    { 


      stage.addEventListener(MouseEvent.MOUSE_UP, dragstop); 
      var bounds:Rectangle = new Rectangle(0,27,550,0); 
      theroot.settings_but.phone1.slider.startDrag(false, bounds); 
      txtboxint = setInterval(changetextbox, 500); 

    } 
    public function dragstop(e:MouseEvent):void 
    { 
     stage.removeEventListener(MouseEvent.MOUSE_UP, dragstop); 
     clearInterval(txtboxint); 
     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 
     theroot.settings_but.phone1.slider.stopDrag(); 
     trace("last", theroot.settings_but.phone1.slider.x); //returns proper x value 
    } 
    public function changetextbox():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)); 
    } 
+0

我认为它必须在代码中的其他地方出现问题。这看起来很好。 – imcg

回答

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)); 
    } 
+0

不幸的是没有去。 – AlexVision

+0

检查我的编辑代码.. –

+0

对不起,但再次,没有去,如果我释放鼠标的任何地方,但滑块mc,它保持原地,直到我点击屏幕上的任何其他地方。然后它迅速恢复。非常沮丧.. – AlexVision

0

问题是事件冒泡到主MC,这引起了MC与滑块内转到帧0

感谢所有的帮助!

相关问题