三网合一动画添加图层
问题描述:
我有以下的(伪)代码三网合一动画添加图层
root = _iface.createRoot(...)
Label l = new Label("hello world");
anim = Animator.create();
anim.delay(1500).then().add(root.layer, l.layer);
anim.delay(1000).then().action(new Runnable() {
public void run() {
// root.add(l);
System.out.println("it works");
}
});
的它工作的线会打印好了,所以我想我更新的动画权,但标签是永远不会加入到现场!
如果我取消它按预期工作(该标签1秒后加)的Runnable
内root.add(l)
,但它不与anim.delay(1500).then().add(root.layer, l.layer);
任何想法whay我做错了添加得到什么?
答
您不能仅将TPUI Widget
的图层添加到其他图层,并且期望Widget
能够正确呈现。必须通过Group.add
将小部件添加到其父项。
您正在使用的动画代码更多地设计用于为原始PlayN图层设置动画比UI元素。 UI元素通常使用控制图层所处位置的LayoutManager
进行布局。如果您试图直接为该图层设置动画效果,那么会让布局管理员感到困惑,并且通常会将所有内容都弄乱。
也就是说,将接口的Root
设置为动画是非常安全的,因为它将整个UI锚定到PlayN场景图中。
如果你真的想尝试一下你在上面做什么,不要使用Animator.add
使用:
action(new Runnable() {
root.add(l);
});
(如你有以上)的正确添加Label
到Root
,并触发验证和渲染的Label
。
谢谢Michael! – AndresQ 2012-02-09 19:55:06