今天试了下javafx 和 jdk7 感觉它给的Demo很给力于是写了如下代码:
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
StackPane root = new StackPane();
Image img=new Image(getClass().getResource("myGif.gif").toExternalForm());
ImageView imv=new ImageView(img);
// 这里该如何设置
root.getChildren().add(imv);
primaryStage.setScene(new Scene(root, 300, 250, Color.BLACK));
primaryStage.show();
}发现gif图片显示很糟糕,没有中心一般的振动和错位显示
仔细观察后发现 是gif图片的周围空白部分被自动删除了
然后几张图片 就失去了参照物一样播放所以求助各位大大 通过如何设置能达到
像使用 java.awt.image 和 java.awt.Toolkit 那样的动态图片显示效果
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
StackPane root = new StackPane();
Image img=new Image(getClass().getResource("myGif.gif").toExternalForm());
ImageView imv=new ImageView(img);
// 这里该如何设置
root.getChildren().add(imv);
primaryStage.setScene(new Scene(root, 300, 250, Color.BLACK));
primaryStage.show();
}发现gif图片显示很糟糕,没有中心一般的振动和错位显示
仔细观察后发现 是gif图片的周围空白部分被自动删除了
然后几张图片 就失去了参照物一样播放所以求助各位大大 通过如何设置能达到
像使用 java.awt.image 和 java.awt.Toolkit 那样的动态图片显示效果
在代码的下面我将告诉你它的核心原理<script language="JavaScript1.2">
<!--
var scrollerwidth=64
var Scrollerheight=64
var scrollerbgcolor='white'
var pausebetweenimages=3000var slideimages=new Array()
slideimages[0]='<a href="http://www.hongen.com/pc/index.htm">;<img src="img/logo1.gif" border=0"></a>'
slideimages[1]='<a href="http://www.hongen.com/eng/index.htm">;<img src="img/logo2.gif">'
slideimages[2]='<a href="http://www.hongen.com/shop/index.htm">;<img src="img/logo3.gif">'
slideimages[3]='<a href="http://www.hongen.com/album/index.htm">;<img src="img/logo4.gif">'
slideimages[4]='<a href="http://www.hongen.com/matrix/">;<img src="img/logo5.gif">'if (slideimages.length>1)
i=2
else
i=0function move1(whichlayer){
tlayer=eval(whichlayer)
if (tlayer.top>0&&tlayer.top<=5){
tlayer.top=0
setTimeout("move1(tlayer)",pausebetweenimages)
setTimeout("move2(document.main.document.second)",pausebetweenimages)
return
}
if (tlayer.top>=tlayer.document.height*-1){
tlayer.top-=5
setTimeout("move1(tlayer)",100)
}
else{
tlayer.top=scrollerheight
tlayer.document.write(slideimages[i])
tlayer.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}function move2(whichlayer){
tlayer2=eval(whichlayer)
if (tlayer2.top>0&&tlayer2.top<=5){
tlayer2.top=0
setTimeout("move2(tlayer2)",pausebetweenimages)
setTimeout("move1(document.main.document.first)",pausebetweenimages)
return
}
if (tlayer2.top>=tlayer2.document.height*-1){
tlayer2.top-=5
setTimeout("move2(tlayer2)",100)
}
else{
tlayer2.top=scrollerheight
tlayer2.document.write(slideimages[i])
tlayer2.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}function move3(whichdiv){
tdiv=eval(whichdiv)
if (tdiv.style.pixelTop>0&&tdiv.style.pixelTop<=5){
tdiv.style.pixelTop=0
setTimeout("move3(tdiv)",pausebetweenimages)
setTimeout("move4(second2)",pausebetweenimages)
return
}
if (tdiv.style.pixelTop>=tdiv.offsetHeight*-1){
tdiv.style.pixelTop-=5
setTimeout("move3(tdiv)",100)
}
else{
tdiv.style.pixelTop=scrollerheight
tdiv.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}function move4(whichdiv){
tdiv2=eval(whichdiv)
if (tdiv2.style.pixelTop>0&&tdiv2.style.pixelTop<=5){
tdiv2.style.pixelTop=0
setTimeout("move4(tdiv2)",pausebetweenimages)
setTimeout("move3(first2)",pausebetweenimages)
return
}
if (tdiv2.style.pixelTop>=tdiv2.offsetHeight*-1){
tdiv2.style.pixelTop-=5
setTimeout("move4(second2)",100)
}
else{
tdiv2.style.pixelTop=scrollerheight
tdiv2.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}function startscroll(){
if (document.all){
move3(first2)
second2.style.top=scrollerheight
}
else if (document.layers){
move1(document.main.document.first)
document.main.document.second.top=scrollerheight+5
document.main.document.second.visibility='show'
}
}window.onload=startscroll//--></script>
<ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; bgcolor=&{scrollerbgcolor};>
<layer id="first" left=0 top=1 width=&{scrollerwidth};>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[0])
</script>
</layer>
<layer id="second" left=0 top=0 width=&{scrollerwidth}; visibility=hide>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[1])
</script>
</layer>
</ilayer>
<p>
<script language="JavaScript1.2">
<!-- if (document.all){
document.writeln('<span id="main2" style="position:relative;width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hiden;background-color:'+scrollerbgcolor+'">')
document.writeln('<div style="position:absolute;width:'+scrollerwidth+';height:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0;top:0">')
document.writeln('<div id="first2" style="position:absolute;width:'+scrollerwidth+';left:0;top:1;">')
document.write(slideimages[0])
document.writeln('</div>')
document.writeln('<div id="second2" style="position:absolute;width:'+scrollerwidth+';left:0;top:0">')
document.write(slideimages[1])
document.writeln('</div>')
document.writeln('</div>')
document.writeln('</span>')
}
//--> </script>这是很长的代码呀,其实它的实现原理很简单,我们可以将这张图片预先存储在缓存中,这个javascript代码该怎么写呢,你可以var pic=new Array();
pic[0]=new Image();
pic[0].src="http://www.attjs.com/image/1.jpg";//这两行代码就是告诉浏览器我要将图片预储存在缓存中拉,如果我不关闭浏览器或则认为清除缓存,它永远存在于缓存中
这样,再加上图片滚动的代码就可以实现在服务器中是连续变化的了。