【问题标题】:Passing functions and parameters as parameter values to GTweener.to function将函数和参数作为参数值传递给 GTweener.to 函数
【发布时间】:2012-11-17 02:46:55
【问题描述】:

我正在尝试在我的 stage3d(使用flare3d 2.0 引擎)游戏中实现平滑的缩放过渡。

我正在使用 GTweener 对相机进行补间,如下所示

GTweener.to(_camera,0.5,{x:pos.x,y:pos.y,z:pos.z});

这工作得很好,但是我想补间其他属性只能使用函数设置,示例

setRotation(x,y,z);

rotateX(value);

我不知道如何调用函数并将函数参数作为参数传递给 GTweerner.to 函数

我知道的另一种解决方法是将回调函数作为 onUpdate 属性传递,但我更愿意避免它以保持简单。

或者

如果有人确认我在 GTweener 中不可能,那么我需要寻找允许我这样做的替代库。

【问题讨论】:

    标签: actionscript-3 tween flare3d


    【解决方案1】:

    我知道您正在使用 GTWeener,但您可能想要下一层并使用 GTWeen 类(GWTeener 使用该类来简化补间过程)。

    它有一个onChange 属性,它是一个回调函数,在补间过程中被调用。从理论上讲,您可以在回调函数中调用 setPosition() 方法,以使缩放操作更顺畅。

    为了做到这一点,我假设您实际上必须对其他属性进行补间,因此这可能行不通或不是一个好主意。纯属猜测,因为我从未使用过 GTween 或 GTweener ...我只查看了文档。

    注意:您可能还需要将 dispatchEvents 属性设置为 true 以获取 true 以执行回调。

    【讨论】:

    • onChange 可以在不创建 GTween 实例的情况下使用,我希望它避免它,因为它具有处理传递“当前值”的开销。如果它简单,你能添加一个代码剪断吗?
    【解决方案2】:

    有时,在使用线速度补间时,运动中的对象似乎“闪烁”。通过应用不同的缓动类型,您可能会发现它看起来更平滑一些。

    例如,使用com.gskinner.motion.easing.Cubic.easeInOut:

    GTweener.to(_camera,0.5,{x:pos.x,y:pos.y,z:pos.z}, {ease: Cubic.easeInOut});
    

    我不认为闪烁是因为 xyz 属性是按顺序设置的,因为这一切都会在渲染新帧之前发生。

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 2021-04-13
      • 1970-01-01
      • 2021-11-19
      • 2015-06-09
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多