i am having a problem with the drawing api. it seems like it has some sort of limit to the amount you can draw. when i run this bit of code for about 10 mins it sudennly clears everything that it has drawn so far then continues drawing. i am not sure what to do about this. any suggestions would help.
onClipEvent(load){
_root.createEmptyMovieClip('drawer',1);
var color=[0x3a242b,0x3b2426,0x352325,0x836454,0x7d5533,0x8b7352,0xb1a181,0xa4632e,0xbb6b33,0xb47249,0xca7239,0xd29057,0xe0b87e,0xd9b166,0xf5eabe,0xfcfadf,0xd9d1b0,0xfcfadf,0xd1d1ca,0xa7b1ac,0x879a8c,0x9186ad,0x776a8e,/*0x000000,0x000000,0x000000,0x000000,0x000000,0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF,0x000000,0x000000,0x000000,0x000000,0x000000,0xFFFFFF,0xFFFFFF,0xFFFFFF,0xFFFFFF,*/0xFFFFFF];
var npoints=15;
var density=50;
var subframes=2;
var noiseX=0;
var noiseX=0;
var point=Array();
for(i=0;i<npoints;i++){
//Point Format:
//[Color,Speed,X,Y,Velocity X,Velocity Y,Interval X, Interval Y]
point*=[color[Math.floor(Math.random()*color.length)],
Math.random()*.185+.06,Math.random()*Stage.width,
Math.random()*Stage.height,
Math.random()*4-2,Math.random()*4-2,0,0];
}
}
onClipEvent(enterFrame){
for(i=0;i<npoints;i++){
//trace('point '+i+' X='+point*[2]);
//trace('point '+i+' Y='+point*[3]);
point*[4]*=.936;
point*[5]*=.936;
point*[2]+=point*[4];
point*[3]+=point*[5];
_root.drawer.lineStyle(.5,point*[0],100);
_root.drawer.moveTo(point*[2],point*[3]);
_root.drawer.lineTo(point*[2]+.5,point*[3]);
for(t=0;t<subframes;t++){
if(i+1==npoints){
point*[6]=(point[0][2]-point*[2])/density;
point*[7]=(point[0][3]-point*[3])/density;
if(point*[2]==point[0][2]){
if(point*[4]>0){
point*[4]-=point*[1];
}else if(point*[4]<0){
point*[4]+=point*[1];
}
}else{
if(point*[2]>point[0][2]){
point*[4]-=point*[1];
}else{
point*[4]+=point*[1];
}
}
if(point*[3]==point[0][3]){
if(point*[5]>0){
point*[5]-=point*[1];
}else if(point*[4]<0){
point*[5]+=point*[1];
}
}else{
if(point*[3]>point[0][3]){
point*[5]-=point*[1];
}else{
point*[5]+=point*[1];
}
}
}else{
point*[6]=(point[i+1][2]-point*[2])/density;
point*[7]=(point[i+1][3]-point*[3])/density;
if(point*[2]==point[i+1][2]){
if(point*[4]>0){
point*[4]-=point*[1];
}else if(point*[4]<0){
point*[4]+=point*[1];
}
}else{
if(point*[2]>point[i+1][2]){
point*[4]-=point*[1];
}else{
point*[4]+=point*[1];
}
}
if(point*[3]==point[i+1][3]){
if(point*[5]>0){
point*[5]-=point*[1];
}else if(point*[4]<0){
point*[5]+=point*[1];
}
}else{
if(point*[3]>point[i+1][3]){
point*[5]-=point*[1];
}else{
point*[5]+=point*[1];
}
}
}
}
for(j=1;j<density;j++){
noiseX=Math.random()*4.2-2.1;
noiseY=Math.random()*4.2-2.1;
_root.drawer.moveTo(point*[2]+(point*[6]*j)+noiseX,point*[3]+(point*[7]*j)+noiseY);
_root.drawer.lineTo(point*[2]+(point*[6]*j)+.5+noiseX,point*[3]+(point*[7]*j)+noiseY);
}
}
}