【发布时间】:2015-09-13 11:04:47
【问题描述】:
我有点问题。我正在创建一个 swf,它允许某人在已发布的 swf 中动态绘制一个矩形,然后他们可以拖动一个形状并将其放置在他们刚刚绘制的矩形内。
我有 swf 工作,所以你可以画一个矩形,没问题。出现问题的地方是,当试图将屏幕上的一个形状拖动到新绘制的矩形中时,它最终会在拖动形状时绘制另一个矩形。
我想,我的问题是如何“关闭”允许在绘制我想要使用的矩形后绘制矩形的代码?
这是我用于绘制矩形的代码(我是从在线教程中获得的)。在绘制矩形之前,可拖动的形状不会显示(它们在下一帧上):
stop();
import flash.display.Shape;
var temporaryDrawing:Shape = new Shape();
addChild(temporaryDrawing);
temporaryDrawing.graphics.lineStyle(3, 0x000000, 1);
var myDrawing:Shape = new Shape();
addChild(myDrawing);
myDrawing.graphics.lineStyle(3, 0x000000, 1);
var mouseHolding:Boolean=false;
var clickedX:Number;
var clickedY:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
function mDown(MouseEvent):void{
mouseHolding = true;
clickedX = mouseX;
clickedY = mouseY;
}
function mUp(MouseEvent):void{
mouseHolding = false;
myDrawing.graphics.drawRect(clickedX, clickedY, mouseX-clickedX, mouseY-clickedY);
nextFrame();
clearTemp ()
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);
function mMove(MouseEvent):void{
if (mouseHolding){
clearTemp ();
temporaryDrawing.graphics.drawRect(clickedX, clickedY, mouseX-clickedX, mouseY-clickedY)
}
}
function clearTemp():void{
temporaryDrawing.graphics.clear();
temporaryDrawing.graphics.lineStyle(3, 0x000000, 1)
}
【问题讨论】:
标签: actionscript-3 flash shape drag