famo.us中Modifier和StateModifier有什么区别?

Har*_*nis 9 famo.us

我看到famo.us 示例主要是指Modifier类,但famo.us大学教程主要引用StateModifier类.

这两者有何不同,哪种是最合适的应用?

mar*_*sen 3

目前,这些没有区别。

如果需要、和 ,请使用StateModifier。目前Modifier仍然支持这些方法,但它们已被弃用setTransformsetSizesetOriginsetOpacity

StateModifier使用 Transitionable 它可用于在值之间平滑转换使用这些方法时只需提供一个转换:

stateModifier.setTransform(Transform.rotateZ(Math.random()*Math.PI/2), { curve: 'easeOut', duration: 5000 });
Run Code Online (Sandbox Code Playgroud)

修饰符受到更多限制,使用,transformFrom ,和。这些方法可以接受值、getter 函数或带有函数的对象。sizeFromoriginFromopacityFromget

  • 那么为什么有人会使用“Modifier”呢? (2认同)
  • 当您想要基于(连续)函数而不是事件进行修改时。示例:使用 StateModifier 在按键时更改大小,但使用 Modifier 根据鼠标位置更改颜色。这将更新 Famous 与引擎 (60 FPS) 而不是与 DOM 事件联系起来,这可以提高性能(如果事件确实是连续的) (2认同)