传统的java程序如swing它的显示内容的转换是“突变式的”,如JTabbedPane,这是受制于当时的机算机的性能,基本上从windows 95开始就是如此,但现在有了javafx,别的不说,就拿
PerspectiveTransform来说,基本就是一个矩形的3D的贴图功能,但遗憾的是在2D中没多少用武之地,但结合3D的绕y轴转动,情况就完全不同了,如,Yahoo新闻,我们就可以先组织到一个CustomNode中,在加上效果,象这样:
. . . . . .
. . . . . .
effect: bind if (effectDisable) null else
PerspectiveTransform {
ulx: bind p1[0] uly: bind p1[1]
urx: bind p2[0] ury: bind p2[1]
lrx: bind p3[0] lry: bind p3[1]
llx: bind p4[0] lly: bind p4[1]
}
cache: true
content: bind ItemNode { visibility:bind if(dot1<0) true else false, item: bind yahooNews.items[curIndex]}
这里的CustomNode 就是itemNode,它包括了,标题,相关图片,及图片简介,和相关的内容
p1, p2, p3, p4是通过3D转换计算出的转动后的点位置,
dot1是用于计算在什么时候各个面是应该看得见,还是看不见,否则各个面将是你中有我,我中有你,有人可能要问,计算量,cpu负荷是否会很大,这方面可以说完全不是这样。
当一个立方体的正面,两侧面分别邦定yahoo 新闻的三个新闻页面,当浏览时新闻页面内容的转换将是转动过渡的,而不是突变式的。
上传一个转动变换时的效果图
PerspectiveTransform来说,基本就是一个矩形的3D的贴图功能,但遗憾的是在2D中没多少用武之地,但结合3D的绕y轴转动,情况就完全不同了,如,Yahoo新闻,我们就可以先组织到一个CustomNode中,在加上效果,象这样:
. . . . . .
. . . . . .
effect: bind if (effectDisable) null else
PerspectiveTransform {
ulx: bind p1[0] uly: bind p1[1]
urx: bind p2[0] ury: bind p2[1]
lrx: bind p3[0] lry: bind p3[1]
llx: bind p4[0] lly: bind p4[1]
}
cache: true
content: bind ItemNode { visibility:bind if(dot1<0) true else false, item: bind yahooNews.items[curIndex]}
这里的CustomNode 就是itemNode,它包括了,标题,相关图片,及图片简介,和相关的内容
p1, p2, p3, p4是通过3D转换计算出的转动后的点位置,
dot1是用于计算在什么时候各个面是应该看得见,还是看不见,否则各个面将是你中有我,我中有你,有人可能要问,计算量,cpu负荷是否会很大,这方面可以说完全不是这样。
当一个立方体的正面,两侧面分别邦定yahoo 新闻的三个新闻页面,当浏览时新闻页面内容的转换将是转动过渡的,而不是突变式的。
上传一个转动变换时的效果图