在 Flash CS6 (AS3) 中通过拖放动态更改文本

Changing text dynamically with drag / drop in Flash CS6 (AS3)

我有一些非常简单的代码,可以很好地让我水平拖动 "slider" 按钮。但是,我还希望显示在对象上方的文本根据我正在拖动的对象的 x 坐标发生变化。

这是简单的代码:

var rectangle:Rectangle = new Rectangle(31,944,179,0);
Button.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);

function fl_ClickToDrag(event:MouseEvent):void
   {
    Button.startDrag(false, rectangle);
   }

Button.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
   {
    Button.stopDrag();
    gotoAndPlay(20);
}

我想要做的是让系统根据其 x 坐标确定 "Button" 的位置,以及 x 坐标是否高于文本的 50在 "Button" 上方表示“50+”,如果 x 坐标高于 100,则文本更改为“100+”。我也不确定 x 坐标是相对于矩形还是相对于整个屏幕。

感谢任何帮助。

您可以使用布尔变量来指示您的按钮是否被拖动,如果是,则更新您的文本字段,如下所示:

var is_dragged:Boolean = false;
var rectangle:Rectangle = new Rectangle(0, 100, stage.stageWidth - button.width, 0);

stage.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
function _onEnterFrame(e:Event):void {
    if(is_dragged){
        text_field.text = String(Math.round(button.x / 50) * 50) + '+';
    }
}

button.addEventListener(MouseEvent.MOUSE_DOWN, button_onPress);
function button_onPress(e:MouseEvent):void {    
    button.startDrag(false, rectangle);
    is_dragged = true;
}

button.addEventListener(MouseEvent.MOUSE_UP, button_onRelease);
function button_onRelease(e:MouseEvent):void {
    button.stopDrag();
    is_dragged = false;
}

您可以看到此代码有效 here

希望能帮到你。