在StageXL中使用Juggler时,RenderLoop vs Stage

时间:2017-12-03 21:24:35

标签: dart stagexl

我是StageXL的新手,所以仍然在努力学习基本概念。我有来自Stagehand web-stagexl的以下代码:

import 'dart:async';
import 'dart:html' as html;
import 'package:stagexl/stagexl.dart';
import 'dart:math';

Future<Null> main() async {
  var canvas = html.querySelector('#stage');
  var stage = new Stage(canvas, width: 1280, height: 800);

  var renderLoop = new RenderLoop();
  renderLoop.addStage(stage);

  var resourceManager = new ResourceManager();
  resourceManager.addBitmapData("dart", "images/dart@1x.png");
  await resourceManager.load();
  var logoData = resourceManager.getBitmapData("dart");

  var logo = new Sprite();
  logo.addChild(new Bitmap(logoData));
  stage.addChild(logo);

  var tween = renderLoop.juggler.addTween(logo, 3, Transition.easeOutBounce);
// var tween = stage.juggler... works just as well
  tween.animate.y.to(800 / 2);
}

在底部,我们可以使用var tween = stage.juggler或renderLoop.juggler,代码似乎表现相同。文档可以指向任何一种方式,但我的理解是renderLoop是一个流,而不是一个节点,所以stage.juggler对我来说更有意义。使用是否存在差异,是否存在其中一种优于另一种情况的情况?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Stage.juggler或RenderLoop.juggler。 RenderLoop中的Juggler由浏览器驱动(请参阅RequestAnimationFrame),舞台上的Juggler由RenderLoop.juggler驱动。所以Stage.juggler更方便您使用。您还可以创建自己的Juggler实例,并将实例(因为Juggler实现了Animatable接口)添加到RenderLoop.juggler。

您可以在此处了解更多相关信息:
http://www.stagexl.org/docs/wiki-articles.html?article=juggler