• 基于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, {
         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)
  • 相关阅读:
    JAVA-JSP内置对象之response对象
    JAVA-JSP内置对象之request对象的其他方法
    JAVA-JSP内置对象之request获得封装所有参数值的Map
    JAVA-JSP内置对象之request获得参数的所有参数值(多个值)
    JAVA-JSP内置对象之request获得参数的参数值(一个值)
    Animator根骨骼运动原始实现代码
    Unity胶囊体的碰撞检测实现
    Animation Play/Stop测试
    texconv下载以及使用命令
    unity替换mesh测试
  • 原文地址:https://www.cnblogs.com/boolean/p/2456919.html
Copyright © 2020-2023  润新知