【问题标题】:Dragging sprite leaves trails拖动精灵留下轨迹
【发布时间】:2011-08-27 21:18:50
【问题描述】:

我有一个简单的 AS 类:

package Bubbles 
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.display.LineScaleMode;
    import flash.display.CapsStyle;
    import flash.display.JointStyle;

    public class Test extends Sprite
    {
        public function Test()
        {
            var g = graphics;

            g.lineStyle(12, 0xEEEEFF, 1.0, true, LineScaleMode.NONE, CapsStyle.NONE, JointStyle.MITER);
            g.drawRoundRect(0, 0, 60, 60, 10, 10);

            addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
            addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        }

        private function onMouseDown(e:MouseEvent)
        {
            startDrag();
        }

        private function onMouseUp(e:MouseEvent)
        {
            stopDrag();
        }
    }
}

Event.ADDED_TO_STAGE处理程序中添加用于作为舞台类的类集:

            var t = new Test();
            t.x = 20;
            t.y = 20;
            addChild(t);

现在,当我在浏览器或 Flash 播放器中启动应用程序并开始拖动对象时,我会看到图像上的轨迹:

Stage 上只有那个绿色矩形。如果我删除它,什么都不会改变。如果我将线条粗细更改为 6 条轨迹,则不会出现,在 7 或更高时它们会出现。您可以在此处查看 SWF:http://hg.n0rd.com/bubbles.html。如何让它正常工作?

更新: 如果我将该矩形形状更改为具有锐角的星形形状,即使在较低的厚度值上也会出现轨迹(当厚度 == 3 或更大时会出现轨迹)。

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    让它工作

    graphics.lineStyle(12, 0xEEEEFF, 1.0, true, LineScaleMode.NORMAL, CapsStyle.NONE, JointStyle.MITER);

    我将 LineScaleMode.NONE 更改为 LineScaleMode.NORMAL。

    希望您不必设置它?

    【讨论】:

      【解决方案2】:

      您不会在每次绘制时重新绘制背景。因此,当下一次绘制不覆盖项目边框时,它会一直绘制在背景上。

      【讨论】:

      • 这并不能解释为什么当厚度为 6 或更少时没有留下任何痕迹。此外,我以前从来没有为重绘背景而烦恼过,我没有遇到任何问题 - 它是 flash,它应该可以自动工作。
      • @nOrd 如果您不应该重绘背景,那么它似乎是在形状移动时计算要重绘的像素的错误。当你移动一个有锐角和宽边框的正方形时会发生什么?
      • 在 Flash 中重绘背景以清除屏幕是一个可怕的想法(当使用绘图 api 时)这只会在先前绘制的图形和 all 之上堆叠另一层它将在下一帧重新绘制,迅速使您的帧速率停止。请改用graphics.clear()清屏。
      猜你喜欢
      • 2012-05-26
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多