绘图功能但仅限于某个screen/page (actionscript3)

Drawing function but only on a certain screen/page (actionscript3)

如何使绘图功能仅在应用程序的一个 page/screen 上运行?比如画图功能应该只出现在第15页,怎么才能让"drawing"/画图功能在转到其他页面时不卡在屏幕上呢? (我正在尝试做一个原型)谢谢。

下面是我使用的绘图功能代码:

var Line:Sprite = new Sprite();
addChild(Line);
Line.graphics.lineStyle(3, 0x000000, 1 );

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1);
addEventListener(MouseEvent.MOUSE_UP, mouseUp1);

function mouseDown1(e:MouseEvent):void {
    Line.graphics.moveTo(e.stageX, e.stageY);
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove1);
}

function mouseMove1(e:MouseEvent):void {
    Line.graphics.lineTo(e.stageX, e.stageY);
}

function mouseUp1(e:MouseEvent):void {
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove1);
}

要在您的 stage 中绘制一些东西,您已经向 stage 添加了一些 MouseEvent 监听器,因此要停止绘制,您只需删除这些监听器并清除您的 Graphics 对象,如果你当然需要,像这样:

stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown1)
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUp1);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove1);

Line.graphics.clear();

希望能帮到你。

Flash没有页面的概念。无论您决定什么,"page" 都将是您需要清除绘图的相同位置。例如,如果您正在使用像页面这样的框架,那么当您更改框架(gotoAndStop() 等)时,您应该清除图形。

要清除图形,您可以删除 Line 对象(使用 removeChild() 或时间轴上的关键帧),或者您可以使用 Line.graphics.clear().