ActionScript中精灵的应用旋转的startDrag()的矩形范围
从我的主类我称之为创建一个精灵,并把它添加到舞台ActionScript中精灵的应用旋转的startDrag()的矩形范围
private function addSwatch(evt:MouseEvent):void
{
if (stage.getObjectsUnderPoint(mousePoint()).length == 0)
{
var swatchSide:Number = 100;
var newSwatch:Sprite = new Swatch(0 - swatchSide/2, 0 - swatchSide/2, swatchSide, swatchSide);
newSwatch.x = mouseX;
newSwatch.y = mouseY;
addChild(newSwatch);
}
}
我添加了一个样本精灵到哪个阶段当被拖动时,被包含在设定的边界内。
this.startDrag(false, swatchBounds());
...
private function swatchBounds():Rectangle
{
var stageBounds = new Rectangle (
0 - defaultSwatchRect.x,
0 - defaultSwatchRect.y,
stage.stageWidth - defaultSwatchRect.width,
stage.stageHeight - defaultSwatchRect.height
);
return stageBounds;
}
如果正方形Sprite进行缩放,下面返回的矩形边界工作
private function swatchBounds():Rectangle
{
var stageBounds = new Rectangle (
0 - defaultSwatchRect.x * swatchObject.scaleX,
0 - defaultSwatchRect.y * swatchObject.scaleY,
stage.stageWidth - defaultSwatchRect.width * swatchObject.scaleX,
stage.stageHeight - defaultSwatchRect.height * swatchObject.scaleY
);
return stageBounds;
}
现在我想包括方形精灵轮换进入组合。数学当然不是我的重点,但我觉得我在写作轨道上。不过,我只是似乎无法总结我的头周围做正确
private function swatchBounds():Rectangle
{
var stageBounds = new Rectangle (
0 - defaultSwatchRect.x * swatchObject.scaleX * Math.cos(defaultSwatchRect.x * swatchObject.rotation),
0 - defaultSwatchRect.y * swatchObject.scaleY * Math.sin(defaultSwatchRect.y * swatchObject.rotation),
stage.stageWidth - defaultSwatchRect.width * swatchObject.scaleX * Math.cos(defaultSwatchRect.width * swatchObject.rotation),
stage.stageHeight - defaultSwatchRect.height * swatchObject.scaleY * Math.sin(defaultSwatchRect.height * swatchObject.rotation)
);
return stageBounds;
}
我的想法是,而不是使用复杂的三角函数,只是用swatchObject.getRect()
得到swatchObject的边界矩形,然后创建一个基于stageBounds在那。它应该超过您的目的。
如果这不是你想要的,我可以帮你弄清楚数学。
对不起,我不能真正给你一个函数,直到我找出什么是defaultSwatchRect - 它的x和y在哪里以及它应该做什么。
另一件你可能想要记住的未来:数学函数(cos,sin)期望以弧度为单位的角度,而.rotation属性以度为单位,所以你必须在使用之前进行转换。
荒谬!大声笑。这是令人难以置信的方式比我一直试图做的一整天更容易。太感谢了! – TheDarkIn1978 2010-04-13 03:40:03
结果有时比你想象的要简单得多:) ,在其他情况下比较困难。 – jonathanasdf 2010-04-13 03:45:35
这是什么defaultSwatchRect,它是什么意思? – jonathanasdf 2010-04-13 03:17:16
哦,是的,这是混乱。抱歉。它与swatchObject相同(在这一点上)。 defaultSwatchRect是用于创建swatchObject的站点的传入参数。我编辑了我的文章,所以你可以希望看到我的意思 – TheDarkIn1978 2010-04-13 03:24:17
编辑并没有真正帮助澄清什么defaultSwatchRect不... – jonathanasdf 2010-04-13 03:35:13