如何在旋转X完成后找出时刻

时间:2011-02-01 10:34:26

标签: flex 3d flashplayer-10

我正在使用自10版以来flashplayer中可用的rotationX / Y / Z属性。出于测试目的,我创建了一个立方体并将画布对象放在它的三个面上(顶部,前部,底部)并创建了一个补间到获得图灵所需的值90度。使用rotationX = xx转动立方体(画布)时,如果三个侧画布对象很小并且填充了非复杂的元素层次结构,则效果很好。当使用更大和更复杂的内容时,它会变慢。下一个想法是删除画布元素内容并在开始转弯之前用内容的快照图像替换它,在转弯完成后,原始内容再次放回到侧面。这导致良好的性能提高。使用补间最后一步旋转是在作为tweenEnd处理程序调用的函数中完成的。在此功能中,还执行复制画布内容的过程。不幸的是,这导致立方体在最后一个旋转步骤中短暂悬挂,其原因是旋转和复制同时发生。 所以我可以通过使用计时器或cube.rotationX = endValue调用setTimeout(func, 500)后等待一段时间,但这很难看。 所以我的问题是:在调用cube.rotationX = endValue之后需要一段时间来计算旋转数据并进行旋转。有没有办法找出轮换结束的时间点,以便可以开始复制?

提前谢谢你 泰勒

2 个答案:

答案 0 :(得分:0)

没有任何默认事件,轮换完成后调度。但我想使用callLater()函数来复制内容。试试吧。

答案 1 :(得分:0)

正是这一点,没有指示旋转结束的事件。使用callLater()而不是使用setTimeout()的解决方案似乎是一种改进,但是因为等待一定时间总是会让某些人“希望它能在机器x上运行”。非常感谢您的提示!

问候

tyler