这是一个相当简单的操作 - 我在DisplayObjectContainer的常规点放置'句柄'。这些句柄将用于缩放,旋转插图画家等。
我知道这可以通过一些相当简单的数学来完成,但我花了所有的数学课程,画出了以越来越有创意的方式死去的棒人。
TargetW / targetH是我正在添加句柄的对象的原始宽度/高度。显然,添加手柄会增加宽度/高度,因此它们会预先存储。
protected function positionHandles():void {
handles[0].x = 0;
handles[0].y = 0;
handles[1].x = targetW / 2;
handles[1].y = 0;
handles[2].x = targetW;
handles[2].y = 0;
handles[3].x = 0;
handles[3].y = targetH / 2;
handles[4].x = targetW / 2;
handles[4].y = targetH / 2;
handles[5].x = targetW;
handles[5].y = targetH / 2;
handles[6].x = 0;
handles[6].y = targetH;
handles[7].x = targetW / 2;
handles[7].y = targetH;
handles[8].x = targetW;
handles[8].y = targetH;
}
答案 0 :(得分:3)
protected function positionHandles():void {
for(var n:int = 0; n < 9; n ++) {
handles[n].x = [0, targetW / 2, targetW][n % 3];
handles[n].y = [0, targetH / 2, targetH][int(n / 3)];
}
}
答案 1 :(得分:1)
这样的事情怎么样?
var targetWidth:Number = 100;
var targetHeight:Number = 50;
var widthHandleDistance:Number = targetWidth/2;
var heightHandleDistance:Number = targetHeight/2;
var handles:Vector.<Point> = new Vector.<Point>();
function positionHandles():void
{
for (var i:int = 0; i<=targetWidth; i=i+widthHandleDistance)
{
for (var k:int = 0; k<=targetHeight; k=k+heightHandleDistance)
{
var handle:Point = new Point(i,k);
handles.push(handle);
}
}
}
这样您也可以轻松调整手柄数量。