首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在尝试在我的画布中实现撤消选项

我正在尝试在我的画布中实现撤消选项
EN

Stack Overflow用户
提问于 2014-01-13 14:28:35
回答 1查看 167关注 0票数 1

我正在尝试在画布中实现撤消和重做选项。我在我的程序中使用以下代码:

代码语言:javascript
运行
复制
var cPushArray = new Array();
var cStep = -1;
function cPush()
{
    cStep++;
    if (cStep < cPushArray.length)
    {
        cPushArray.length = cStep;
    }
    cPushArray.push(document.getElementById("drawingCanvas").toDataURL());
}

function cUndo()
{
    if(cStep > 0)
    {
        cStep--;
        var canvasPic = new Image();
        canvasPic.src = cPushArray[cStep];
        canvasPic.onload = function() { ctx.drawImage(canvasPic,0,0);}
    }
}
function cRedo()
{
    if(cStep < cPushArray.length-1)
    {
        cStep++;
        var canvasPic = new Image();
        canvasPic.src = cPushArray[cStep];
        canvasPic.onload = function() {ctx.drawImage(canvasPic,0,0);}
    }
}

但是如果我调用cPush()方法,我就无法在画布上绘制任何东西。你能告诉我在上面的代码中我哪里错了吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-13 17:23:39

不要使用onload事件,因为它只由DOM ready事件触发。

代码语言:javascript
运行
复制
var canvasPic = new Image();
canvasPic.src = cPushArray[cStep];
//if ctx has get the context of canvas, draw the pic immediately
ctx.drawImage(canvasPic,0,0);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21085157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档