前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Ext.Panel扩展一个更容易操作的Canvas

基于Ext.Panel扩展一个更容易操作的Canvas

作者头像
用户1183026
发布2018-01-19 10:28:58
7240
发布2018-01-19 10:28:58
举报
文章被收录于专栏:布尔布尔
代码语言:js
复制
/*
    画布类
    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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-04-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档