我有一个项目,在这里我使用EaselJS在容器中创建填充(矩形)和文本。我的目标是使此矩形和文本可拖动以在画布上移动。这已经完成并且运行良好。
我的问题是当我尝试使用onMouseOver处理程序使用scaleX
和scaleY
调整矩形大小时。确实做到了,但是矩形只是从其初始点移到了其他位置...
我已经读过我需要使用regX
和regY
属性来覆盖它,但是在我的代码上下文中,我做不到。有人可以告诉我我在做什么错吗?
这是我的JSFiddle example,因此您可以确切了解正在发生的事情。只需将鼠标拖到矩形上即可查看我的意思。这一定是容易实现的,但是我不确定如何实现,请帮助我。
谢谢!!! =)
最佳答案
您的问题是,绘制的矩形不在0 | 0处,“标准”方法是从0 | 0开始绘制形状,然后通过.x
和.y
将形状本身放置在某个位置
rectOpt0.graphics.beginFill("#C51A76").rect(140,160,78,35);
=> changed to
rectOpt0.graphics.beginFill("#C51A76").rect(0,0,78,35);
然后我将容器放置在140 | 160 + regX / Y偏移处:
containerOpt0.regX = 78/2; //regX/Y to have is scale to the center point
containerOpt0.regY = 35/2;
containerOpt0.x = 140 + 78/2; //placement + regX offset/correction
containerOpt0.y = 160 + 35/2;
这是更新的小提琴:http://jsfiddle.net/WfMGr/2/