基于Ext.Panel扩展一个更容易操作的Canvas
时间:2022-04-23
本文章向大家介绍基于Ext.Panel扩展一个更容易操作的Canvas,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/*
画布类
xtype:"beidasoft.oe.canvas.panel"
<script type="text/javascript" language="javascript" src="/modules/oe/view/canvas/panel.js"></script>
eg:
var panel = new BeidaSoft.OE.Canvas.Panel()
*/
Ext.namespace("BeidaSoft.OE.Canvas")
BeidaSoft.OE.Canvas.Panel = function (config) {
BeidaSoft.OE.Canvas.Panel.superclass.constructor.call(this,config);
}
Ext.extend(BeidaSoft.OE.Canvas.Panel, Ext.Panel, {
width: 500,
height: 500,
border: false,
canvas: '',
canvasID: "canvas_",
initComponent: function () {
this.canvasID = this.canvasID + this.id
BeidaSoft.OE.Canvas.Panel.superclass.initComponent.call(this);
},
//清理画布
Clear:function(){
var ctx = this.canvas.getContext("2d");
ctx.clearRect(0, 0, this.getWidth(), this.getHeight());
},
//获取画布上下文
GetContext:function(){
var ctx = this.canvas.getContext("2d");
return ctx
},
//自带画图示例
Draw:function(){
var cxt = this.GetContext()
//创建渐变
var radgrad = cxt.createRadialGradient(50, 50, 10, 60, 60, 60);
radgrad.addColorStop(0, '#A7D30C');
radgrad.addColorStop(0.9, '#019F62');
radgrad.addColorStop(1, 'rgba(1,159,98,0)');
cxt.fillStyle = radgrad;
cxt.fillRect(0, 0, this.getWidth(), this.getHeight());
cxt.font = "italic 20px 微软雅黑";
cxt.strokeText("李树强", 30, 50);
},
//渲染实现Canvas标签的实例化以及canvas元素的引用
onRender: function(ct, position) {
BeidaSoft.OE.Canvas.Panel.superclass.onRender.apply(this, arguments);
var canvasHTMLFormat = [
'<canvas id="{0}" height="100%" width="100%" style="border: 0px solid #06c;">',
'您使用的浏览器不支持Canvas标签和CanvasAPI,建议使用IE9以上版本',
'</canvas>'
].join("")
var canvasHTML = String.format(canvasHTMLFormat, this.canvasID);
this.body.dom.innerHTML += canvasHTML;
var canvas = document.getElementById(this.canvasID)
this.canvas = canvas
}
});
Ext.reg('beidasoft.oe.canvas.panel', BeidaSoft.OE.Canvas.Panel)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android MediaPlayer 播放音频的方式
- Android切圆角的几种常见方式总结
- Android DSelectorBryant 单选滚动选择器的实例代码
- Android 拍照选择图片并上传功能的实现思路(包含权限动态获取)
- Android Canvas的drawText()与文字居中方案详解
- JeecgCloud版,部署项目。
- docker(镜像常用命令)
- [- Flutter基础篇 -] 聊聊那些弹框
- 聊一聊Android中的StateListAnimator
- Linux KeyLogger
- [- Flutter 数据&状态篇 -] InheritedWidget
- Android实现图片一边的三角形边框效果
- Android使用SoundPool播放短音效
- 用Jquery做一个进度条
- Android SoundPool实现简短小音效