本帖最后由 benprince 于 2012-07-17 15:55:16 编辑

解决方案 »

  1.   

    建议在firebug中调试,看下控制台报什么错?
      

  2.   

    <%=(这里是读取的服务器的)%> 你赋值的是客户端的变量,所以是行不通的
      

  3.   

    你可以将服务器的数据代码编程json到一个状态值上,你用js分解成数组形式来做就可以了
      

  4.   

    楼主,首先这样是无法实现的.
    1).onlyfilename在后台运算好了在抛到前端,就是只能在后台计算.所以我们在前端用onlyfilename[count]是错误的.你只能在onlyfilename[1]写具体的数字.
    2).有另外一种方法,可以解决问题,首先在后台把onlyfilename转换成字符串,用逗号隔开,然后在前端接受在转换成js Array.然后就可以直接onlyfilename[count]调用了.
      

  5.   

    楼主啊js是在前台执行的,而java是在后台执行的。
    也就是说当你执行<%%>的时候,var chushii=0压根就没有执行,试问又怎么会有chushii这个变量呢?我建议换种写法:
    <script language="JavaScript" type="text/javascript">
       var chushii=0;
        function changepic() {//计时器调用的函数
           var onlyfilenames = [
                <%
                  for(int i = 0 ; i < onlyfilename.length ; i ++){
                %>
                    '<%=onlyfilename[i] %>',
                <%
                  }
                %>
             ''];
            ss = "tu\\17\\" + onlyfilenames[chushii];  //就是这句怎么写      
            chushii++; 
           if (chushii==<%=filenum%>)
           {clearInterval(timermy); }        
        }
    </script>
      

  6.   

    是的,现在知道了<%=(这里是读取的服务器的)%>只能使用后台的变量
      

  7.   

    您的开篇一声凄惨的呐喊:“楼主啊”,让俺意识到俺可能升级到菜鸟中的战斗机级别了。
    看了您的代码,就清楚您的思路了。但提示错误:“System.Array”不包含“length”的定义。
    就直接在后台把length值先赋给一个变量。
    就着您的思路谷歌下就解决了。
    不知道有木有人要看代码<script language="JavaScript" type="text/javascript">     
         var onlyfilenames=new Array();
         //启动循环计时器
        function ff4() {
            timermy = setInterval("changepic()", 500);       
              <%
            for(int i= 0 ; i < filenum;i ++)  {
            %>
            onlyfilenames.push("<%=onlyfilename[i]%>");//不是字符串就不要加引号
            <%
       }
      %>
        }
    </script>