制作一个带有滑块的简单应用程序,该滑块可以更改文本框值,但每当我放下滑块时,它都会快速回到0位置。我需要它留在原地。请帮忙!
代码:
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 :(得分: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));
}
答案 1 :(得分:0)
问题是事件冒泡到主MC,导致带有滑块的MC转到第0帧
感谢您的帮助!