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;

? ? ? ? ? ? }

? ? ? ? }; //創(chuàng)建一個對象

function Draw(){

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

circle.DrawCircle(ctx);

? ? ? ? circle.CircleMove();

? ? ? ? circle.angle+=10;

? ? ? ? circle.a -= 0.01;//對象數(shù)值操作

? ? ? ? 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>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末废亭,一起剝皮案震驚了整個濱河市具钥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掌动,老刑警劉巖宁玫,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撬统,死亡現(xiàn)場離奇詭異,居然都是意外死亡凭迹,警方通過查閱死者的電腦和手機苦囱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鱼鸠,“玉大人羹铅,你說我怎么就攤上這事职员。” “怎么了焊切?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長堪侯。 經(jīng)常有香客問我荔仁,道長,這世上最難降的妖魔是什么雹拄? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮坪哄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘模暗。我一直安慰自己念祭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布隶糕。 她就那樣靜靜地躺著枚驻,像睡著了一般株旷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锉矢,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天沽损,我揣著相機與錄音雕什,去河邊找鬼显晶。 笑死壹士,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唯笙。 我是一名探鬼主播盒使,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼少办,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挽放?” 一聲冷哼從身側(cè)響起蔓纠,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤腿倚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后敷燎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懈叹,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年胧洒,在試婚紗的時候發(fā)現(xiàn)自己被綠了卫漫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肾砂。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡镐确,死狀恐怖饼煞,靈堂內(nèi)的尸體忽然破棺而出诗越,到底是詐尸還是另有隱情,我是刑警寧澤块促,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布床未,位于F島的核電站,受9級特大地震影響斋扰,放射性物質(zhì)發(fā)生泄漏只酥。R本人自食惡果不足惜裂允,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一哥艇、第九天 我趴在偏房一處隱蔽的房頂上張望貌踏。 院中可真熱鬧,春花似錦祖乳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帅刊。三九已至,卻和暖如春女揭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吧兔。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工掩驱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人民逼。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓涮帘,卻偏偏與公主長得像调缨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子弦叶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,027評論 0 2
  • 一:canvas簡介 1.1什么是canvas燕侠? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,663評論 2 32
  • 上網(wǎng)搜索了angularjs裁剪绢彤,發(fā)現(xiàn)只有正方形和圓形 http://www.cnblogs.com/smilec...
    四腳蛇閱讀 725評論 0 1
  • 1 Canvas接口元素定義 1.1 getContext()方法 為了在canvas上繪制蜓耻,你必須先得到一個畫布...
    Kevin_Junbaozi閱讀 1,289評論 1 2
  • 孩子第一次劃船 在公園刹淌,第一次劃船,劃的是電動船嚷往,把她自己挑選的柠衅,塑料皇冠,掉到了水里贷祈,這應(yīng)該是她劃船最傷心的地方...
    我心我愿秀閱讀 474評論 0 4