Flex 3D旋转的各种实现

大年夜,在整flex 3d旋转呵呵。
传说大年夜写程序,来年发财 哈哈。
Flex 4 提供 的Rotate3D 效果实现旋转效果 和 手动设置ui.rotationY 的效果完全不一样,这种效果就好像你写意思一样的两行代码“求美女”,Rotate3D 返回的给你的是“林志玲”,ui.rotationY返给你的却是“凤姐”,我靠,这还得了,吓死人。后来找遍了各种原因,翻遍了各种api,把flash的3D变换框架都掏了个底朝天,最后终于让哥发现,那个环节把“林志林”偷梁换柱成“凤姐”了。

  在大揭秘之前,容许哥先讲一讲flex 3D旋转的几种方式。

1:Rotate3D 效果显示旋转

2: matrix3D,详情查看flex 4的帮助文档。用法(设置ui.transform.matrix3D = new Matrix3D,然后设置各种属性)

3:PerspectiveProjection(透视)

      重点了,就是想直接这是 rotationY的值就让她马上绕y轴旋转,而且要有Rotate3D的效果,某昂搞。。

看下面重点代码:

     var p:PerspectiveProjection = new PerspectiveProjection();

p.fieldOfView = 55;  //翻了翻,发现默认的视角距离是55

p.projectionCenter = new Point(ui.width/2,ui.height/2 ); //视角点,狠重要,也就是说你眼睛的点。

        ui.transform.perspectiveProjection = p;

OK,这几个属性搞定,再也不会出现凤姐了。

有人说,如果说我想批量请求林志玲某昂搞呢?

哥有办法,看下边;

     关系:  group1.addElement( group 2);  group1.addElement( group 3);

     批量实现: group1.transform.perspectiveProjection = p;    OK搞定



解释批量和单个请求的区别;

单个请 求美眉:

|-------------------------

|                                 |

|           0(视点)    |

| ------------------------|



批量:

group1  (视角不同偏转反响也不同。2,3又偏转,4,5左偏转 )

|------------------------------------------------------------------------------------------------------------------------|

|    |----------------|         |-----------------|                                            |-------------|        |-------------|        |

|      |  group2      |            |    group3     |        0(视点)                | group4    |        |  group5  |           |

|        |-----------------|            |----------------- |                             |--------------|      | -------------|              |

|-------------------------------------------------------------------------------------------------------------------------|

你可能感兴趣的:(rotate3d)