官方文档是我开始旋转的地方。一直盯着它看了很长时间,因为我不知道如何将新坐标输入到即将到来的矩阵变换中。
不过,我终于设法找出问题所在。这是将监听器连接到 Mover 何时触发 onMoveStop 的问题:
dojo.connect(movable, "onMoveStop", map, "reposition");
然后我得到新的移动距离并将它们输入到我的图形类中的任何旋转或缩放矩阵转换中:
updateMatrix: function(){
//So far it is the group which is being rotated
if (this.group) {
if(!this.curr_matrix){
this.curr_matrix = this.initial_matrix;
}
this.group.setTransform([
this.m.rotateAt(this.rotation, this.stage_w_2, this.stage_h_2),
this.m.scaleAt(this.scaling, this.stage_w_2, this.stage_h_2),
this.curr_matrix
]);
//this.group.setTransform([
// this.m.rotateAt(this.rotation, mid_x, mid_y),
// this.m.scaleAt(this.scaling, mid_x, mid_y),
// this.initial_matrix]);
}
},
reposition: function(){
mtx = this.group._getRealMatrix();
this.curr_matrix = this.m.translate(mtx.dx, mtx.dy);
},
生活又是花花公子了。感谢尤金的建议。