HTML5 Canvas開發者和讀者的福音


演示

今天看到可見即可得的編程 ,其中是在svg中實現的。理所當然,它可以搬到 canvas當中,而且支持canvas動畫播放,而不是僅僅是靜態的svg。效果如下所示:

Your browser does not support the canvas element.

修改顏色(fillsStyle)或者count或者angle等值試試!

 

技術實現

循環執行富文本中的code:

 1         setInterval("executeCode()", 500)
 2          function executeCode() {
 3              try {
 4                  if (!beginTag) {
 5                     eval(document.getElementById('code').value);
 6                 }
 7             }  catch (e) {
 8              
 9             }
10         } 

半秒執行一次,半秒以內的延遲是可以接受的。這里有一個beginTag是標志富文本中代碼的循環是否已經開始執行,倘若已經開始執行則不再執行外部的loop。

事件監聽:

< textarea  id ="code"  onkeyup ="restart()"  rows ="20"  cols ="70" >

富文本框監聽用戶的鍵盤事件,如果發生,則重新執行code:

        var loop;
        function restart() {
            beginTag = false;
            clearInterval(loop);
        }

其中該loop定義在富文本框的代碼當中:

        loop = setInterval( function () {
            beginTag =  true;
            ctx.clearRect(0, 0, c2.width, c2.height);
            taiji(200, 200, 200, Math.PI * (angle / count) * 2,  true);
            taiji(350, 350, 50, Math.PI * ((count - angle) / count) * 2,  false);
            angle = (angle + 5) % count;
        }, 50);
對於富文本框中,代碼不高亮的問題,有沒有什么好的想法?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM