Javascript 如何使用canvas js在特定条件下停止绘制活动图形

Javascript 如何使用canvas js在特定条件下停止绘制活动图形,javascript,html,canvasjs,Javascript,Html,Canvasjs,这是绘制活动图形的代码。它以概率为基础绘制。我希望在满足条件后立即退出图形的绘制 <script> window.onload = function () { var dps = []; // dataPoints var chart = new CanvasJS.Chart("chartContainer", { title :{ text: "Dynamic Data" }, axisY:

这是绘制活动图形的代码。它以概率为基础绘制。我希望在满足条件后立即退出图形的绘制

<script>
window.onload = function () 
{

    var dps = []; // dataPoints
    var chart = new CanvasJS.Chart("chartContainer", {
        title :{
            text: "Dynamic Data"
        },
        axisY: {
            includeZero: false
        },      
        data: [{
            type: "line",
            dataPoints: dps
        }]
    });

    var xVal = 0;
    var yVal = 100; 
    var updateInterval = 1000;
    var dataLength = 20; // number of dataPoints visible at any point
    var weights = [0.7, 0.3]; // probabilities
    var results = [1, 50];//values to plot
    var y=[];
    var updateChart = function (count) 
    {
        count = count || 1;
        for (var j = 0; j < count; j++) 
        {
            yVal =  getRandom();
            y.push(yVal)//push to array y
            dps.push({
                x: xVal,
                y: yVal
            });
            xVal++;
        }

        if (dps.length > dataLength) 
        {
            dps.shift();
        }

        if((y.length>4) && (y[y.length-2]==50) && (y[y.length-1]==50) )//condition to exit
        {
            myFunction();
        }

        chart.render();
    };

    updateChart(dataLength);//function call
    setInterval(function(){updateChart()}, updateInterval);

 // returns 1 or 50 based on probability given above.

    function getRandom () 
    {
        var num = Math.random(),
            s = 0,
            lastIndex = weights.length - 1;

        for (var i = 0; i < lastIndex; ++i) {
            s += weights[i];
            if (num < s) {
                return results[i];
            }
        }

        return results[lastIndex];
    };

    function myFunction() {
        alert("I am an alert box!");//alert and should exit the plot
        //code to be written 
    }

}
</script>

window.onload=函数()
{
var dps=[];//数据点
var chart=new CanvasJS.chart(“chartContainer”{
标题:{
文本:“动态数据”
},
axisY:{
包括:错
},      
数据:[{
键入:“行”,
数据点:dps
}]
});
var xVal=0;
var-yVal=100;
var updateInterval=1000;
var dataLength=20;//任意点可见的数据点数量
变量权重=[0.7,0.3];//概率
var results=[1,50];//要打印的值
变量y=[];
var updateChart=函数(计数)
{
计数=计数| | 1;
对于(var j=0;jdataLength)
{
dps.shift();
}
如果((y.length>4)&&(y[y.length-2]=50)&&(y[y.length-1]=50))//条件退出
{
myFunction();
}
chart.render();
};
updateChart(dataLength);//函数调用
setInterval(函数(){updateChart()},updateInterval);
//根据上面给出的概率返回1或50。
函数getRandom()
{
var num=Math.random(),
s=0,
lastIndex=权重。长度-1;
对于(变量i=0;i
图形是连续绘制的。有没有办法停止动态绘图? 当条件满足且遇到警报时,如何停止绘图


提前感谢。

您的图表将通过setInterval每秒更新一次:

您可以使用clearInterval“取消设置”此间隔,但您需要此间隔的间隔id,这是通过setInterval:[1]获得的

var intervalId = setInterval( updateChart, updateInterval );
然后,当您的条件为真时(签入updateChart):


[1] 有关clearInterval的更多信息:

var intervalId = setInterval( updateChart, updateInterval );
clearInterval( intervalId );