在 StageXL 中使用 Juggler 时的 RenderLoop 与 Stage
RenderLoop vs Stage when using Juggler in 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 对我来说更有意义。在使用上有区别吗,还有其他情况下一个比另一个更受欢迎吗?谢谢
您可以使用 Stage.juggler 或 RenderLoop.juggler。来自RenderLoop的Juggler由浏览器驱动(见RequestAnimationFrame),来自Stage的Juggler由RenderLoop.juggler驱动。所以 Stage.juggler 更方便。您还可以创建自己的 Juggler 实例并将该实例(因为 Juggler 实现了 Animatable 接口)添加到 RenderLoop.juggler.
您可以在此处了解更多信息:
http://www.stagexl.org/docs/wiki-articles.html?article=juggler
我是 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 对我来说更有意义。在使用上有区别吗,还有其他情况下一个比另一个更受欢迎吗?谢谢
您可以使用 Stage.juggler 或 RenderLoop.juggler。来自RenderLoop的Juggler由浏览器驱动(见RequestAnimationFrame),来自Stage的Juggler由RenderLoop.juggler驱动。所以 Stage.juggler 更方便。您还可以创建自己的 Juggler 实例并将该实例(因为 Juggler 实现了 Animatable 接口)添加到 RenderLoop.juggler.
您可以在此处了解更多信息:
http://www.stagexl.org/docs/wiki-articles.html?article=juggler