我正在修改对齐和原点值,以便在屏幕内外显示动画。但是,我还需要使用align和origin来定位其中一个视图中的曲面。当此曲面设置对齐和原点值时,似乎没有考虑在父视图上设置对齐和原点。任何人都知道如何构造渲染树以使对齐和原始值考虑父视图设置?
假设视图已对齐[1,0]并且原点[0,0](从屏幕向右推出)在此视图中有一个对齐[0.5,0.5]和原点[0.5,0.5]的表面(以观点为中心)。这显示了屏幕中心的表面,而我希望将它放在父视图的中心。
答案 0 :(得分:1)
您可以链接修饰符,但请记住Modifiers
与其Render Nodes
是一对一的关系。对于两个不同的可渲染项使用相同的Modifier
,无法实现目标。
在您的情况下,您将构建渲染树并将渲染节点链接到彼此。根RenderNode (View)
可用于将链接的渲染节点转换为屏幕。
<强> Click Here for a working Example 强>
根节点将是主视图的入口节点。
var rootView = new View();
var rootMod = new Modifier({
size: [undefined, undefined],
origin: [0, 0],
align: [1, 0]
});
创建一个关闭屏幕的View Node和一个要链接的启动View Node。
var offView = new View();
var offMod = new Modifier({
size: [undefined, undefined],
origin: [0, 0],
align: [0, 0]
});
var off = new Surface({
size: [undefined, undefined],
properties: {
backgroundColor: 'rgba(0,0,0,0.25)'
}
});
var splashView = new View();
var splash = new Surface({
size: [200, 200],
properties: {
backgroundColor: 'rgba(255,0,0,0.25)'
}
});
var splashMod = new Modifier({
origin: [0.5, 0.5],
align: [0.5, 0.5]
});
现在将它们添加到各自的渲染节点。
rootView.add(offView);
View
添加到关闭屏幕View
offView.add(splashView);
现在您已准备好将Renderables
及其Modifiers
分别添加到每个渲染节点。
offView.add(offMod).add(off);
splashView.add(splashMod).add(splash);
mainContext.add(rootMod).add(rootView);
mainContext.add(root);