Flash 旋转+矩阵+JSFL

Flash 旋转+矩阵+JSFL,flash,matrix,flash-cs4,jsfl,Flash,Matrix,Flash Cs4,Jsfl,通过JsFL的闪存传输矩阵对我来说很重要: 我必须编写一个JsFL脚本,在我的Flash场景中创建一个文本,并以随机角度旋转它。 想象一下,我想创建并旋转一个Hello World!在45度时,我的代码如下所示: rotateAngle = 45; //creates my new text at x:0, y:0 coordinates fl.getDocumentDOM().addNewText({left:0, top:0, right:10, bottom:10}); fl.get

通过JsFL的闪存传输矩阵对我来说很重要:

我必须编写一个JsFL脚本,在我的Flash场景中创建一个文本,并以随机角度旋转它。 想象一下,我想创建并旋转一个Hello World!在45度时,我的代码如下所示:



rotateAngle = 45;

//creates my new text at x:0, y:0 coordinates
fl.getDocumentDOM().addNewText({left:0, top:0, right:10, bottom:10});
fl.getDocumentDOM().setTextString('Hello World!');

var mat = fl.getDocumentDOM().selection[0].matrix; //get the current matrix

// set rotation
mat.a = Math.cos( rotateAngle );
mat.b = Math.sin( rotateAngle);
mat.c = - Math.sin(rotateAngle);
mat.d = Math.cos( rotateAngle );

fl.getDocumentDOM().selection[0].matrix = mat; //apply new matrix

问题是:应用于我的文本的旋转是58.3,而不是45

我得承认我对matrix有点不了解。。。所以我在这里使用了旋转矩阵变换:

想法


谢谢。

你试过用弧度代替度了吗?

你试过用弧度代替度了吗?

为了简单起见,我很确定你也可以只使用下面的公式,而不是通过矩阵

var element = fl.getDocumentDOM().selection[0];
element.rotation = 45;

这也避免了必须转换为弧度,因为它将度作为输入值。

为了简单起见,我很确定您也可以使用以下公式,而不是遍历矩阵

var element = fl.getDocumentDOM().selection[0];
element.rotation = 45;

这避免了转换成弧度,因为它将度作为输入值。

你是我的超级明星,我为我的错误感到非常羞愧。非常感谢。我会一直在你身边。这个网站是私人聊天,对吗你是我的超级明星,我为我的错误感到非常羞愧。非常感谢。我会一直在你身边。这个网站是私人聊天,对吗D