JS对象属性定义与操作,类的定义与对象的实例化

代码一:




<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>小球运动</title>

<style>

canvas{

border: 1px #000 solid

}

</style>

</head>

<body>

<div>

<canvas id="canvas" width="500" height="200"></canvas>

</div>

</body>

<script>

var canvas=document.querySelector("#canvas");

var ctx = canvas.getContext('2d');

var circle={//定义一个对象

"r":255,

"g":0,

"b":0,

"a":1,

"r":10,

"x":10,

"y":100,

"angle":0,

DrawCircle: function (ctx) {

                ctx.fillStyle = 'rgba(' + 255 + ',' + this.g + ',' + this.b + ',' + this.a + ')';

                ctx.beginPath();

                ctx.arc(this.x, this.y, this.r, 0, 360, false);

                ctx.fill();

                ctx.closePath();

            },

            CircleMove: function () {

                var scale = this.angle / 180 * Math.PI;

                var dx = 8;

                var dy = -14 * Math.cos(scale);

                this.x += dx;

                this.y += dy;

            }

        }; //创建一个对象

function Draw(){

ctx.clearRect(0, 0, canvas.width, canvas.height);

circle.DrawCircle(ctx);

        circle.CircleMove();

        circle.angle+=10;

        circle.a -= 0.01;//对象数值操作

        if(circle.alpha<=0){

        return;

        }

        setTimeout(Draw, 100);

}

Draw();

</script>

</html>


代码二:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>小球运动</title>

<style>

canvas{

border: 1px #000 dashed

}

</style>

</head>

<body>

<div>

<canvas id="canvas" width="500" height="200"></canvas>

</div>

</body>

<script>

var canvas=document.querySelector("#canvas");

var ctx = canvas.getContext('2d');

    function particle(colorr, colorg, colorb, r, x, y, speed, angle, alpha) {

        var obj = {//定义一个类

            colorr: colorr,

            colorg:colorg,

            colorb:colorb,

            r: r,

            x: x,

            y: y,

            speed:speed,

            angle: angle,

            alpha: alpha,

            draw: function (ctx) {

                ctx.fillStyle = 'rgba(' + this.colorr + ',' + this.colorg + ',' + this.colorb + ',' + this.alpha + ')';

                ctx.beginPath();

                ctx.arc(this.x, this.y, this.r, 0, 360, false);

                ctx.fill();

                ctx.closePath();

            },

            move: function () {

                var scale = this.angle / 180 * Math.PI;

                var dx = this.speed;

                var dy = -14 * Math.cos(scale);

                this.x += dx;

                this.y += dy;

            }

        }; 

        return obj;

    }

var circle=particle(255,0,0,10, 10, 100, 8, 0, 1)//类实例化成对象

function Draw(){

ctx.clearRect(0, 0, canvas.width, canvas.height);

circle.draw(ctx);

        circle.move();

        circle.angle+=10;

        circle.alpha -= 0.01;

        if(circle.alpha<=0){

        return;

        }

        setTimeout(Draw, 100);

}

Draw();

</script>

</html>

代码三:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>小球运动</title>

<style>

canvas{

border: 1px #000 dashed

}

</style>

</head>

<body>

<div>

<canvas id="canvas" width="500" height="200"></canvas>

</div>

</body>

<script>

var canvas=document.querySelector("#canvas");

var ctx = canvas.getContext('2d');

    function particle(colorr, colorg, colorb, r, x, y, speed, angle, alpha) {

            this.colorr=colorr,

            this. colorg=colorg,

            this.colorb=colorb,

            this.r=r,

            this.x=x,

            this.y=y,

            this.speed=speed,

            this.angle=angle,

            this.alpha=alpha,

            this.draw=function (ctx) {

                ctx.fillStyle = 'rgba(' + this.colorr + ',' + this.colorg + ',' + this.colorb + ',' + this.alpha + ')';

                ctx.beginPath();

                ctx.arc(this.x, this.y, this.r, 0, 360, false);

                ctx.fill();

                ctx.closePath();

            },

            this.move=function () {

                var scale = this.angle / 180 * Math.PI;

                var dx = this.speed;

                var dy = -14 * Math.cos(scale);

                this.x += dx;

                this.y += dy;

            }

    }

var circle=new particle(255,0,0,10, 10, 100, 8, 0, 1)//类实例化成对象

function Draw(){

ctx.clearRect(0, 0, canvas.width, canvas.height);

circle.draw(ctx);

        circle.move();

        circle.angle+=10;

        circle.alpha -= 0.01;

        if(circle.alpha<=0){

        return;

        }

        setTimeout(Draw, 100);

}

Draw();

</script>

</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,187评论 0 2
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,210评论 2 32
  • 上网搜索了angularjs裁剪,发现只有正方形和圆形 http://www.cnblogs.com/smilec...
    四脚蛇阅读 4,117评论 0 1
  • 1 Canvas接口元素定义 1.1 getContext()方法 为了在canvas上绘制,你必须先得到一个画布...
    Kevin_Junbaozi阅读 5,192评论 1 2
  • 孩子第一次划船 在公园,第一次划船,划的是电动船,把她自己挑选的,塑料皇冠,掉到了水里,这应该是她划船最伤心的地方...
    我心我愿秀阅读 3,328评论 0 4

友情链接更多精彩内容