所以我有很多帧,在一帧中我有一个带有以下代码的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函数。
答案 0 :(得分:0)
要激活swf文件的硬件加速,请转到文件&gt; 发布设置... 或只是 CTRL (获胜)/ Cmd (mac)+ 转换 + F12 ,您将看到此窗口,在底部选择硬件加速: