带有transformMatrix的容器的EASELjs pressmove事件
EASELjs pressmove event of container with transformMatrix
我有问题请指正,经过一番研究后我没有找到任何相关信息,如果有答案,您可以指出我的答案。具体来说,这是另一个 的延续。
将转换矩阵应用到容器元素后,没有拖动动画。看完 documentation:
我明白了
transformMatrix Matrix2D
Inherited from DisplayObject: transformMatrix:318
If set, defines the transformation for this display object, overriding all other transformation properties (x, y, rotation, scale, skew).
Default: null
为了拖动我使用了目标对象的x和y属性
dragger.on("pressmove", function (evt) {
evt.currentTarget.x = evt.stageX;
evt.currentTarget.y = evt.stageY;
canvasElement.update();
});
所以现在我想我必须更改矩阵值才能制作拖动动画。或者还有其他解决方案?
这里是 fiddle 带有转换矩阵的容器。
没错。如果您应用 transformMatrix
,它会覆盖其他转换属性。最明显的解决方案,查看您的代码就是不使用矩阵,并设置 x
和 y
属性。
https://jsfiddle.net/n55jk201/11/
另一种选择是使用 Matrix2D.translate()
,或直接在矩阵上设置 tx
/ty
:
https://jsfiddle.net/n55jk201/12/
显然,您可以做很多代码清理工作,但希望这传达了总体思路。
我有问题请指正,经过一番研究后我没有找到任何相关信息,如果有答案,您可以指出我的答案。具体来说,这是另一个
将转换矩阵应用到容器元素后,没有拖动动画。看完 documentation:
我明白了transformMatrix Matrix2D
Inherited from DisplayObject: transformMatrix:318
If set, defines the transformation for this display object, overriding all other transformation properties (x, y, rotation, scale, skew).
Default: null
为了拖动我使用了目标对象的x和y属性
dragger.on("pressmove", function (evt) {
evt.currentTarget.x = evt.stageX;
evt.currentTarget.y = evt.stageY;
canvasElement.update();
});
所以现在我想我必须更改矩阵值才能制作拖动动画。或者还有其他解决方案?
这里是 fiddle 带有转换矩阵的容器。
没错。如果您应用 transformMatrix
,它会覆盖其他转换属性。最明显的解决方案,查看您的代码就是不使用矩阵,并设置 x
和 y
属性。
https://jsfiddle.net/n55jk201/11/
另一种选择是使用 Matrix2D.translate()
,或直接在矩阵上设置 tx
/ty
:
https://jsfiddle.net/n55jk201/12/
显然,您可以做很多代码清理工作,但希望这传达了总体思路。