封装方法:

/**
* @矩形canvas库
* @authors Shimily (275766400@qq.com)
* @date 2016-12-28 10:30:51
* @version $Id$
*/ function Rect( options){
this._init(options); //执行方法
}
Rect.prototype={
_init:function(options){
this.x=options.x || 0; //参数设置,如果不传参数,则设置默认值
this.y=options.y || 0;this.opacity=options.opacity===0 ? 0: options.opacity || 1;
this.scaleX=options.scaleX ||1;
this.scaleY=options.scaleY ||1; this.strokeStyle=options.strokeStyle || 'red';
this.fillStyle=options.fillStyle||'red';
},
render:function(ctx){ //执行绘制
ctx.save(); //先保存状态
ctx.beginPath(); ctx.translate(this.x, this.y); ctx.rotate(this.rotation * Math.PI /180);
ctx.globalAlpha=this.optacity;
ctx.scale(this.scaleX, this.scaleY);
//ctx.rect(this.x, this.y, this.w, this.h); //绘制矩形
ctx.rect(0, 0, this.w, this.h); //绘制矩形 设置旋转为矩形的左顶点,要将画布进行位移ctx.translate(this.x, this.y); ctx.fillStyle=this.fillStyle;
ctx.fill(); //填充颜色 ctx.strokeStyle=this.strokeStyle;
ctx.stroke();
ctx.restore(); //释放状态
}
}

调用方法:

var rect= new Rect({   //设置属性
x:300,
y:200,
w:100,
h:120,
rotation:30,
opacity:0.3,
scaleX:1.5,
scaleY:1.5,
fillStyle:'blue',
strokeStyle:'yellow'
});
rect.render(ctx); //执行

js面向对象的封装方法,【案例】的更多相关文章

  1. 原生JS面向对象思想封装轮播图组件

    原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...

  2. js面向对象 多种创建对象方法小结

    转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(th ...

  3. JS面向对象(封装,继承)

    在六月份找工作中,被问的最多的问题就是: js面向对象,继承,封装,原型链这些,你了解多少? 额,,,我怎么回答呢, 只能说,了解一些,不多不少,哈哈哈哈,当然,这是玩笑话. 不过之前学过java,来 ...

  4. 用js面向对象思想封装插件

    js是基于原型的面向对象语言,如果你学过java,c#等正统面向对象语言,你会难以理解js的面向对象,他和普通的面向对象不太一样,今天,我们通过封装一个toast插件,来看看js面向对象是如何运行的. ...

  5. js面向对象的使用方法

    标准用法: function Sprite(){ //函数内容部设置属性 this.name='shimily'; } //原型上设置方法 Sprite.prototype.show=function ...

  6. Js 面向对象之封装,继承,原型,原型链

    封装 ,继承 ,原型, 原型链 封装 ? 面向对象有三大特性,封装.继承和多态.对于ES5来说,没有class(类)的概念,并且由于JS的函数级作用域(函数内部的变量在函数外访问不到),所以我们就可以 ...

  7. 实例了解js面向对象的封装和继承等特点

    1.面向对象特点 相比之前按照过程式写法,面向对象有以下几个特点; 1.抽象:抓住核心问题,就是将很多个方法放在一个对象上.对象由属性和方法组成,属性就是我们定义的变量,它是静态的:方法就是行为操作, ...

  8. 个人对js面向对象和封装插件的用法

    做了一段时间的前端了,给自己写代码也总结出来了一点小小的思路,就来分享一下自己的意见和建议了. 面向对象和插件封装其实说到底都是面向对象的思想,但是插件一般是你要用的时候就new 调用出来的.就说一下 ...

  9. js组件常用封装方法。。。。。【组件封装】 ★★★★★★

    公共弹窗js写法:mcake弹窗封装Dialog.js function Dialog(bg,els,opts) { this.$els = $(els); this.$Dialogbg = $(bg ...

随机推荐

  1. 使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法

    最近在使用AFNetworkWorking读取JSON时,出现了NSCocoaErrorDomain Code=3840的错误.这种错误应该是服务器端返回JSON格式不对造成的.通过Google搜到这 ...

  2. 华为5700s配置链路聚合

    /创建聚合链路,数值可以随意. port link-type trunk /设置成trunk模式.(如果是接入vlan的话,link-type acess) port trunk allow-pass ...

  3. tomcat启动超时问题

    当启动tomcat时候出现 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the s ...

  4. \r与\n的区别

    \r : return 到当前行的最左边. \n: newline 向下移动一行,并不移动左右. Linux中\n表示回车+换行: Windows中\r\n表示回车+换行. Mac中\r表示回车+换行 ...

  5. NE Upgrade python script. Need to write a Tkinter GUI for it

    # -*- coding: utf-8 -*-#from ftplib import FTP __authour__='CC' import osimport telnetlibimport time ...

  6. Mac系统下配置Maven环境变量

    1.在官网下载Maven安装包,网址:https://maven.apache.org/download.cgi: 2.进入终端Terminal,验证JDK是否配置成功,输入java -version ...

  7. Unity3d外包(北京)公司(长年承接U3D外包)

    我们制作各类型严肃游戏,虚拟现实,增强现实项目! 品质保证,售后完备. 联系请加QQ:372900288  电话:13911652504 我们团队成立于2011年10月,是一个专业从事严肃游戏研发的团 ...

  8. js 中与元素有关的高度

    1, 平常都经常用 document.documentElement.clientWidth 或 document.documentElement.clientHeight 来获取页面的宽度和高度, ...

  9. TCP/IP协议学习(六) 链路层详解

    学习知识很简单,但坚持不懈却又是如此的困难,即使一直对自己说"努力,不能停下"的我也慢慢懈怠了... 闲话不多说,本篇将讲述TCP/IP协议栈的链路层.在本系列第一篇我讲到,TCP ...

  10. MFC编程入门之二十(常用控件:静态文本框)

    上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控 ...