DragonBones / DragonBonesJS

DragonBones TypeScript / JavaScript Runtime
MIT License
746 stars 320 forks source link

添加`useSharedTicker`参数, 以及 静态的公共方法`advanceTime(passedTime)` #97

Open finscn opened 5 years ago

finscn commented 5 years ago

其实在实际项目中, 大多数 Pixi的用户 并不会使用 PIXI.ticker.shared , 而且 PIXI的ticker设计的并不好.

所以 这个PR 为DragonBonesJS pixi版本增加了 是否使用 PIXI.ticker.shared 的参数.

参数默认值 是 true, 所以这个改变并不会影响现有的项目.

用法:

    dragonBones.PixiFactory.useSharedTicker = false;
    var factory = dragonBones.PixiFactory.factory;

    // 上面两行代码 可以简化为: (推荐使用 newInstance )
    var factory = dragonBones.PixiFactory.newInstance(false);

    // 此时 不会使用 PIXI.ticker.shared

    ... ...

    // 用户可以在 自己的 game loop 函数里使用 下面的方法来更新动画
    dragonBones.PixiFactory.advanceTime(passedTime);
rtalon83 commented 5 years ago

Good idea!

You can use GSAP ticker "TweenLite/TweenMax.ticker" to direct DragonBones, for example.

Merged in my fork.

akdcl commented 5 years ago

其实,龙骨已经提供了开发者自己驱动所有动画的,而不是使用默认时钟的选项,就是将每个 armature 实例的 clock 指向开发者自己实例化的 clock,这样就脱离了内置的默认 clock 控制,当然可能会觉得设置每个armature 实例的方法会有些繁琐