<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      javascript異步編程系列【四】----Jscex+Jquery UI打造游戲力度條

      2011-08-23 07:55  【當耐特】  閱讀(4772)  評論(13)    收藏  舉報

      如果大家玩過桌球類游戲的話,對力度條的概念一定不會陌生,如下圖:

      a

      還有豎直方向上的力度條,如下圖:

      xx

      其實,類似的條條無處不在!比如進游戲時候的進度條、魔獸世界里法師施法過程中讀的條等等······

      引入jquery ui,我們可以輕松得到下面這個靜止的力度條:

      html:

       <div class="progressbar" style="width: 20%"></div>

      js:

              $(function () {
                  $(".progressbar").progressbar({
                      value: 37
                  });

              }); 

      加入Jscex讓它動起來:

      <script type="text/javascript">

          $(
      function () {

              $(
      ".progressbar").progressbar({

                  value: 
      5

              });

          });

          
      var executeAsync = eval(Jscex.compile("async"function (proceedValues) {

              
      while (proceedValues < 100) {

                  proceedValues
      ++;

                  $await(Jscex.Async.sleep(
      50));

                  $(
      ".progressbar").progressbar({

                      value: proceedValues

                  });

              }

          }));

          
      function btnExecuteAsync_onclick() {

              executeAsync(
      5).start();

          }

      </script>
      <div class="progressbar" style="width: 20%">
      </div>

      <input id="btnExecuteAsync" type="button" value="開始" onclick="return btnExecuteAsync_onclick()" />  


      但是通常情況下,我們需要它往返無限循環下去,那么我們應該這么實現:

      var executeAsync = eval(Jscex.compile("async", function (proceedValues) {
              while (true) {

                  while (proceedValues < 100) {

                      proceedValues++;

                      $await(Jscex.Async.sleep(10));

                      $(".progressbar").progressbar({

                          value: proceedValues

                      });

                  }

                  if (proceedValues == 100) {

                      while (proceedValues > 0) {

                          proceedValues--;

                          $await(Jscex.Async.sleep(10));

                          $(".progressbar").progressbar({

                              value: proceedValues

                          });

                      }

                  }

              }

          }));

      就在這個時候,我一不小心,把if (proceedValues == 100) { } 注釋掉了,代碼變成這個樣子:

          var executeAsync2 = eval(Jscex.compile("async", function (proceedValues) {

              while (true) {

                  while (proceedValues < 100) {

                      proceedValues++;

                      $await(Jscex.Async.sleep(10));

                      $(".progressbar3").progressbar({

                          value: proceedValues

                      });

                  }

                  //if (proceedValues == 100) {

                  while (proceedValues > 0) {

                      proceedValues--;

                      $await(Jscex.Async.sleep(10));

                      $(".progressbar3").progressbar({

                          value: proceedValues

                      });

                  }

                  //}

              }
       })); 

         

      效果上面一模一樣,不會錯!

      可以看得出來,內部的兩個while不是同時執行的,而是非常線性的,它們之間會相互等待,而且最開始的執行順序是從上至下,內部的while執行完了,再跳到最外層的while重新執行。

      這種設計方式,無疑是優雅的!!

      上面那種三個while的方式語意性很好,從剛剛分析得出,代碼還可以這樣寫:

          var executeAsync = eval(Jscex.compile("async", function (proceedValues) {

              while (proceedValues < 100) {

                  proceedValues++;

                  $await(Jscex.Async.sleep(10));

                  $(".progressbar").progressbar({

                      value: proceedValues

                  });

                  if (proceedValues == 100) {

                      while (proceedValues > 0) {

                          proceedValues--;

                          $await(Jscex.Async.sleep(10));

                          $(".progressbar").progressbar({

                              value: proceedValues

                          });

                      }

                  }

              }
      }));  

      這樣相當于永遠跳不出最外層的proceedValues < 100,所以也會無限循環下去。



      最新的Jscex 庫,請上https://github.com/JeffreyZhao/jscex或者http://www.sndacode.com/projects/jscex/wiki下載吧····

      【更多javascript異步編程系列】

      javascript異步編程系列【一】----用Jscex畫圓

      javascript異步編程系列【二】----Jscex模擬重力場與google蘋果logo的比較

      javascript異步編程系列【三】----Jscex無創痕切入JqueryUI

      主站蜘蛛池模板: 最新国产精品好看的精品| 免费天堂无码人妻成人av电影| 亚洲精品成人无限看| 精品久久久中文字幕一区| 国产精品无码无需播放器| 亚洲国产成人无码av在线播放| 亚洲精品第一国产综合精品| 宝贝腿开大点我添添公口述视频 | 快好爽射给我视频| 精品久久久久久久久午夜福利| 国产一区二区三区不卡视频| 军人粗大的内捧猛烈进出视频| 久在线精品视频线观看| 国产精品久久久久免费观看| 久久天堂无码av网站| 国产人妻大战黑人第1集| 精品免费看国产一区二区| 国产一区二区三区在线观看免费| 国产99精品成人午夜在线| 无码日韩av一区二区三区| 少妇人妻无码专区在线视频| 婷婷六月色| 国产精品综合在线免费看| 欧美丰满熟妇xxxx性大屁股| 欧洲一区二区中文字幕| 丰满爆乳一区二区三区| 高清欧美性猛交xxxx黑人猛交| 国产不卡精品视频男人的天堂| 中文字幕一区有码视三区| 俺来也俺去啦最新在线| 国产免费无遮挡吸奶头视频| av色国产色拍| 国产精品区免费视频| 国产午夜福利视频一区二区| 亚洲精品综合网中文字幕| 国产午夜精品久久精品电影| 欧美老熟妇乱子伦牲交视频| 99久久亚洲综合精品成人网| 亚洲中少妇久久中文字幕| 国产av一区二区三区精品| 精品福利一区二区三区免费视频 |