Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #37926
| Newsgroups | comp.lang.javascript |
|---|---|
| Date | 2019-12-05 13:31 -0800 |
| References | <7b6d7cb9-be87-41fc-8020-5988e9c6fac3@googlegroups.com> |
| Message-ID | <a827656d-032a-48d1-98a0-ff5b2e5a4707@googlegroups.com> (permalink) |
| Subject | Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? |
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
Den torsdag 5 december 2019 kl. 18:09:41 UTC+1 skrev Jonas Thörnvall:
> I realise i "probably?" draw element that are outside canvas, and should use splice to remove those. But i am doing the "printout" in one swoop and am unsure howto splice it?
>
> BACKOFFSET.splice(midiEv,1)
>
> AND
>
> track[rectrack].midiMess.splice(midiEv,1)
>
> Should take care of removing a element that is found to be drawn outside canvas.
>
> But then where to put the check conditions and what is it, probably should be just before drawn out?
>
> if (6+scrollBarPos-BACKOFFSET[midiEv]>"canvasWidth")???
>
> Well i try and come back on subject, another question how do one check it works, the elements is drawn outside canvas?
>
> Probably just check array length but there is new incoming elements during playup so it is hard to see what is going on?
I think it could be that backoffset is just a buffered copy of an on note "not the actual note on", and i am not that keen to backtrack which actual note on it was.
But if someone knows the answer howto i am all ears.
I thought i was past this function by now LoL
>
> function pianoSCROLL(){
> console.log("pianoSCROLL");
> console.log("TRACK="+rectrack+" midiMess length="+track[rectrack].midiMess.length);
> nbrOfEV = track[rectrack].midiMess.length;
>
> var x=0;
> while (x<nbrOfEV){
> midiEv=x;
> //INSIDE KEY PRESSED
> if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==false){
> ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
> ctm.fillRect(56,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide[midiEv],keyHeight);
> //When ***A NEW*** key pressed a startvoint relative the scrollbar created ***FRONTOFFSET***
> if(FRONTOFFSET[midiEv]==0) {FRONTOFFSET[midiEv]=scrollBarPos;}
> rightSide[midiEv]=scrollBarPos-FRONTOFFSET[midiEv];
> }
> //INSIDE KEY RELEASED
> else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==false){
> keyreleased[midiEv]=true;
> for (var q=midiEv-1;q>=0;q--){
> if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) {
> barLength[q]=rightSide[q]-50;
> BACKOFFSET[q]=FRONTOFFSET[q]+barLength[q];
> keyreleased[q]=true;
> break;
> }
> }
> }
> //INSIDE MOVE BAR
> else if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==true){
> z=midiEv+1;
> while(z<nbrOfEV){
> if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[midiEv].data1){
> ctm.fillStyle = "#000a4d";
> ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8))-1,barLength[midiEv]+50 ,keyHeight+2);
> ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
> ctm.fillRect(6+scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), barLength[midiEv]+50,keyHeight);
> break;
> }
> z++;
> }
> }
> x++;
> }
> }
Well for some reason they protest when removed from arrays...
But i managed to do the second best, i do now drawthem out.
function pianoSCROLL(){
console.log("pianoSCROLL");
console.log("TRACK="+rectrack+" midiMess length="+track[rectrack].midiMess.length);
nbrOfEV = track[rectrack].midiMess.length;
var x=0;
while (x<nbrOfEV){
midiEv=x;
//INSIDE KEY PRESSED
if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==false){
ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
ctm.fillRect(56,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide[midiEv],keyHeight);
//When ***A NEW*** key pressed a startvoint relative the scrollbar created ***FRONTOFFSET***
if(FRONTOFFSET[midiEv]==0) {FRONTOFFSET[midiEv]=scrollBarPos;}
rightSide[midiEv]=scrollBarPos-FRONTOFFSET[midiEv];
}
//INSIDE KEY RELEASED
else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==false){
keyreleased[midiEv]=true;
for (var q=midiEv-1;q>=0;q--){
if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) {
barLength[q]=rightSide[q]-50;
BACKOFFSET[q]=FRONTOFFSET[q]+barLength[q];
keyreleased[q]=true;
break;
}
}
}
//INSIDE MOVE BAR
else if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==true){
z=midiEv+1;
while(z<nbrOfEV){
if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[midiEv].data1){
//Removal before next drawout
if (6+scrollBarPos-BACKOFFSET[midiEv]>Mwidth+15){
//BACKOFFSET.splice(midiEv,1);
//track[rectrack].midiMess.splice(midiEv,1);
} else {
ctm.fillStyle = "#000a4d";
ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8))-1,barLength[midiEv]+50 ,keyHeight+2);
ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
ctm.fillRect(6+scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), barLength[midiEv]+50,keyHeight);
break;
}
}
z++;
}
}
x++;
}
}
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-05 09:09 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-05 13:31 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-05 13:45 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? luserdroog <luser.droog@gmail.com> - 2019-12-05 18:56 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-05 19:39 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? luserdroog <luser.droog@gmail.com> - 2019-12-05 19:59 -0800
Re: Remove canvas "Array Element note" as its fully drawnout beyond/outside canvas boundary? Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-05 23:22 -0800
csiph-web