timeout=setTimeout("startScroll()",20);
你的操作太慢了,不够快,如果你点鼠标的速度能达到50赫兹就没问题了,还有:
winobj.close();之前最好加上clearTimeout(timeout);

解决方案 »

  1.   

    把startScroll分成两个function startScroll(){
                winobj.focus();  
                scrollImage();
            }
    function scrollImage() {
         if (pixelpos<=(imgwidth-250)){
                    pixelpos+=pixelstep;
                    winobj.scrollTo(pixelpos,0);
                }
                else
                {
                    pixelpos=0;
                }
                timeout=setTimeout("startScroll()",20);}
      

  2.   


    确实是这样,我将时间改成1000毫秒就可以了,可是我不明白。
    clearTimeout(n)就是发送一个信号,我不明白,为何时间设小了,这个信号就发不出去。
    我理解就是慢点传过去,总不能传不出去吧。
    请再指教。
      

  3.   

    顶顶顶,有什么好顶的,顶能解决问题吗,代码很简单:每20毫秒就会focus一下新窗口,而关闭按钮在parent上
    我说的多清楚:如果你点鼠标的速度能达到50赫兹就没问题了
    请不要顶了,这么简单的道理自己多思考思考,我已经一两个月没跟贴了,一是懒了,而是没劲
      

  4.   

    我的理解是,如果时间设的太短,则无法捕捉到timeout句柄,我想clear时,实际上我得到的句柄已经不存在了。
      

  5.   

    你说的好象不对,因为并不是时间的问题,而是:
    winobj.focus();  //这一句如果加入,则无法停止图片滚动,也无法关闭包含图片的窗口
    如果加上这一句,就有问题,
    如果去了这一句,就可以停止图片的滚动。
    所以这一句是关键。
    我不明白的是,这一句只是设定窗口为当前呀,没有别的任何操作呀?为何影响这么大呢?