| 1 import "dart:html" as j;class t{const t();}class u{final name;const u(this.name
);}class v{const v();}class AB{const AB();}class BB{var DB;var EB;var FB;var GB;
var HB;var IB,JB;var KB=false;final LB=100;final MB=4;BB(){var h=-2.0;DB=j.query
('#video-canvas-fancy');EB=j.query('#canvas-copy-fancy');FB=j.query('#canvas-dra
w-fancy');GB=<num>[] ;HB=<num>[] ;for(var i=0;i<MB;i++ ){GB.add(0);HB.add(h);h+=
0.4;}DB.onCanPlay.listen((g)=>NB());DB.onPlay.listen((g)=>OB());DB.onPause.list
en((g)=>PB());DB.onEnded.listen((g)=>PB());} NB(){EB.width=FB.width=DB.videoWidt
h;EB.height=DB.videoHeight;FB.height=DB.videoHeight+LB;IB=EB.context2D;JB=FB.con
text2D;} OB(){KB=true;QB();} QB(){if(!KB)return;var k=DB.videoWidth/MB;IB.drawIm
age(DB,0,0);JB.clearRect(0,0,FB.width,FB.height);for(var g=0;g<MB;g++ ){var l=g*
k;var i=0;var h=k;var m=DB.videoHeight;var n=l;var o=GB[g]+i+LB;var q=h;var s=m;
JB.drawImageScaledFromSource(EB,l,i,h,m,n,o,q,s);if((GB[g]+HB[g]).abs()<LB){GB[g
]+=HB[g];}else{HB[g]=-HB[g];}}j.window.requestAnimationFrame(( CB){QB();return f
alse;});} PB(){KB=false;}} main(){new BB();} |