<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    努力,成長,提高

    在追求中進(jìn)步
    數(shù)據(jù)加載中……
    html5 基于canvas的基礎(chǔ)類設(shè)計
    先給大家看一個demo
    http://www.koooi.com/html5/
    代碼很簡單
    頁面上面加一個<canvas style="border:1px solid" id="canvas" width="1000" height="800">
                <p>
                    Your browser does not support the canvas element.
                </p>
            </canvas>
    然后javascript中寫上
    var canvas = null;
    var ctx = null;
    var score = 0;
    var num = 51;
    function getRandomInt(a, b){
        
    return Math.floor(Math.random() * (b - a + 1)) + a;
        
    }

    window.onload 
    = init;

    function init(){
        canvas 
    = document.getElementById('canvas');
        scoreID 
    = document.getElementById('score');
        ctx 
    = canvas.getContext('2d');
        
    //    setInterval(draw, 1000 / FPS);
        
        controller 
    = new ERIC.CanvasController(ctx, canvas.width, canvas.height);
        controller.animateStopBySignal();
        canvas.onclick 
    = function(e){
            
    var mousex = e.clientX;
            
    var mousey = e.clientY;
            
    var relativex = mousex - canvas.offsetLeft;
            
    var relativey = mousey - canvas.offsetTop;
            
    var len = controller.canvasObjectList.length;
            
    var infig = false;
            
    for (i = len - 1; i >= 0; i--) {
                
    if (controller.canvasObjectList[i].isInFigure(relativex, relativey)) {
                    score 
    = score + 10;
                    infig 
    = true;
                    controller.canvasObjectList[i].removeFromControl();
                }
            }
            
    if (!infig) {
                score 
    = score - 10;
            }
            scoreID.innerHTML 
    = score;
        }
        
        ERIC.run(
    function test(){
            
    var t = getRandomInt(00);
            
    if (t == 0) {
                num
    --;
                
    if(num==0){
                    ERIC.stop();
                    
    return;
                }
                
    var cir1 = new ERIC.Circle(getRandomInt(70930), getRandomInt(70730), 5);
                cir1.setTriggerDelete(
    function(){
                    
    return this.radius >= 40;
                });
                cir1.setAction(
    function(){
                    
    this.radius = this.radius + 1;
                });
                controller.add(cir1);
            }
        }, 
    400);
    }

    很簡單的代碼,利用了我寫的基礎(chǔ)類ERIC.Circle Eric.CanvasController 以及ERIC.Run
    使用簡介:
    1.先實例化ERIC.
    CanvasController,假設(shè)實例名字controller
    2.實例化一個ERIC.BasicFigure類的子類的對象,現(xiàn)在EricUtils.js只提供了一個擴展類Circle,假設(shè)實例名字為cir
    3.設(shè)置cir實例的動作和刪除的條件。動作意思是每一個動畫要執(zhí)行什么操作,比如圓的半徑加1, 或者圓心移動。刪除的條件比如半徑大于50就從畫布當(dāng)中刪除掉,不再顯示這個圓。
    cir1.setTriggerDelete(function(){
                    return this.radius >= 40;
                });
                cir1.setAction(function(){
                    this.radius = this.radius + 1;
                });
    4.把cir添加到controller中。controller.add(cir)
    5.調(diào)用controller.animate(); 此方法會以每秒30幀來畫出cir對象,每幀結(jié)束執(zhí)行cir在第三步設(shè)置的動作。到達(dá)刪除條件會刪除掉該object,直到?jīng)]有object在controller當(dāng)中。
    6.也可以調(diào)用controller.animateStopBySignal()方法,動作和5相同,但是會一直進(jìn)行渲染,這樣適合于臨時添加object到controller當(dāng)中,添加進(jìn)去以后馬上就可以被渲染,直到滿足被刪除的條件。渲染結(jié)束需要調(diào)用controller.signalStop()

    基礎(chǔ)類下載地址http://www.koooi.com/html5/js/EricUtils.js
    當(dāng)然,這只是一個框架,以后要添加更多的功能,如果您對于html5有興趣,打算和我一起來開發(fā),歡迎聯(lián)系我
    希望可以起到拋磚引玉的作用。
    QQ627四23四四三

    posted on 2010-06-13 02:07 孔陽 閱讀(1932) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产又长又粗又爽免费视频 | 亚洲精品乱码久久久久久蜜桃图片| 国产情侣久久久久aⅴ免费| 亚洲精品第一国产综合精品99| mm1313亚洲国产精品无码试看| 国产嫩草影院精品免费网址| 亚洲国产精品无码久久| 午夜免费福利在线| 黄色网址在线免费观看| 亚洲人成国产精品无码| 中文字幕在线观看免费| 无码久久精品国产亚洲Av影片| 99久久免费精品高清特色大片| 亚洲精品在线免费观看视频| 免费毛片在线看片免费丝瓜视频| 亚洲乱妇老熟女爽到高潮的片| 亚洲av无码天堂一区二区三区| 黄 色一级 成 人网站免费| 久久亚洲伊人中字综合精品| 最近2019中文字幕免费大全5| 免费观看一区二区三区| 亚洲精品高清视频| 国产成人免费网站| 国产天堂亚洲精品| 亚洲国产精品无码成人片久久| 8x网站免费入口在线观看| 亚洲精品综合在线影院| 亚洲国产成人a精品不卡在线| 国产免费网站看v片在线| 亚洲一卡二卡三卡| 国产jizzjizz免费视频| 国产在线观看免费av站| 亚洲春色在线观看| 亚洲精品动漫人成3d在线| 91久久青青草原线免费| 怡红院亚洲红怡院在线观看| 国产亚洲精品资源在线26u| 野花高清在线观看免费完整版中文| 美女黄频a美女大全免费皮| 亚洲成a人片77777老司机| 午夜免费福利在线|