拖动精灵会留下痕迹

时间:2011-08-27 21:18:50

标签: flash actionscript-3

我有一个简单的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播放器中启动应用程序并开始拖动对象时,我会看到图像上的路径: trails

舞台上只有绿色矩形。如果我删除它没有任何变化。如果我将线条粗细更改为6条线迹没有出现,则会出现7和更高的线条。您可以在此处查看SWF:http://hg.n0rd.com/bubbles.html。如何让它正常工作?

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

2 个答案:

答案 0 :(得分:1)

让它与

一起使用

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

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

希望您不必设置它?

答案 1 :(得分:0)

您不会在每次抽奖时重新绘制背景。因此,当下一次绘制不覆盖项目边框时,项目边框将保留在背景上。