Feathers:transitions

来自Starling中文站
跳转到: 导航, 搜索

原文地址:http://wiki.starling-framework.org/feathers/transitions

Feathers ScreenNavigator Transitions

让我们来看一些使用transitions和ScreenNavigator的高级技巧.

看看ScreenNavigator 教程这是一个对transition的简单说明.

优化 Transitions

屏幕之间的过渡动画能帮助用户获得更好更连贯的体验. 然而, 由于创建一个新的screen会丢失帧,所以其在运行时足以完全跳过一个过渡. 通常, 通过适当的编写一个屏幕的初始化代码,并跟着时间逐步运行它,你就可以用这种保持过渡动画的方法来提高屏幕创建的性能.

如果可能的话, 尽量限制 initialize()方法里新对象的数量, 并删掉任何在屏幕第一次显示时不需要立即执行的代码的代码. 保持在 initialize() 里只有过渡时必要的代码. 我发现在 initialize()方法的最后 (或使用Starling juggler里的 delayCall()) 它可以帮助我们创建一个计时器持续显示在screen之间的过渡动画里. 当计时完成时, 运行代码的其他部分,完成初始化方法 initialize().

一些在initialize()方法中要避免的事项:

  • 不要使用flatten()方法.它会花费很多的时间. 应该把它放在过渡之后.
  • 不要上传任何新的textures到GPU. 理想的情况下, 在屏幕初始化之前, 您可以通过调用atlas.getTexture()方法来使用textures图集和SubTexture对象.
  • 不要创建那些在过渡期间不需要立即可见的显示对象. 如果一些对象并不是至关重要的,你应该考虑在过渡之后创建它. 例如, 在你的游戏级别中你可能有各种各样的道具、敌人和和地形, 但如果它们不是在过渡时要显示在屏幕上, 你就要考虑在过渡之后再创建他们.
  • 一些生成等级数据或者不可见的操作的需要长时间运行的代码,如果在过渡期间不需要,也可以等过渡之后再执行.
  • 在屏幕初始化期间不要访问系统文件. 如果你是用shared objects 或者 files 来存储设置和资料,在初始化之前加载这些值.

虽然所有的初始化仍然花同样长的时间才能完成, 当用户不会注意到这些正在发生时你就可以试图把它持续到合适的时间. 其中的一些动画帮助应用程序看起来更具有交互性并且很自然地依照用户大脑和眼睛交换信息时间他们让停顿片刻.

更多教程, 请返回 Feathers 文档.


翻译者:

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱