ActionScript 3重复单击会减慢程序的速度

时间:2014-11-08 19:41:56

标签: actionscript-3

所以我有很多帧,在一帧中我有一个带有以下代码的movieclip: 它添加了一个Shape来绘制一些生物细胞,当按下一个名为“test”的特定动画片段时,这些细胞会改变颜色。 'morphogen1',...是其他可以被拖拽的动画片段。

cells = new Shape()
this.addChild(cells)
this.setChildIndex(cells,1)

function drawcell(xx,yy){
    if(logic(xx,yy)){col=0xFF4444}else{col=0xFFBBBB}
    with(cells.graphics){
    beginFill(col)
    drawCircle(xx,yy,5)
    endFill()
    }
}

function drawcells(){
    for(i=0;i<=15;i++){
        for(j=0;j<=10;j++){
            drawcell(i*22,j*14)
        }
    }
}

function dist(x1,y1,x2,y2){
    return Math.exp(-((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))/50000)
}

function logic(xx,yy){
    va = dist(xx,yy,morphogen1.x,morphogen1.y)
    vb = dist(xx,yy,morphogen2.x,morphogen2.y)
    vc = dist(xx,yy,morphogen3.x,morphogen3.y)
    if(ctrl==1){sa=(va>0.5)}else{sa=(va<vb)}
    return sa&&(vb>0.5)&&(vc>0.5)
}

test.addEventListener(MouseEvent.CLICK, swap)

function swap(e:MouseEvent){
    ctrl = 1-ctrl
    drawcells()
}

按预期工作,但点击的“测试”越多,程序越慢;通过30次点击,滞后非常明显。

我是一名业余程序员 - 可能我已经投入了一些主要的nono;是事件监听器堵塞cpu?我试过用更简单但更同样的问题删除Math.exp函数。

1 个答案:

答案 0 :(得分:0)

要激活swf文件的硬件加速,请转到文件&gt; 发布设置... 或只是 CTRL (获胜)/ Cmd (mac)+ 转换 + F12 ,您将看到此窗口,在底部选择硬件加速:

SWF Publish Settings