bmd = document.getElementById("canvas").bitmapData; lenna = new Image(); lenna.src = "res/lenna-300x300.png"; clipping = new Rectangle(10, 10, 280, 280); rotoMatrix = new Matrix(1, 0, 0, 1, 150, 150); zoomMax = 0.2; zoomMin = -0.4; dz = 0.015; dr= 0.01; angle = 0; zoom = zoomMin; isZoomIncreasing = true; setInterval(function() { if ( isZoomIncreasing ) zoom = zoom + dz; else zoom = zoom - dz; angle = angle + dr; if ( angle > 360 ) angle = 0; if ( zoom > zoomMax ) { isZoomIncreasing = false; zoom = zoomMax; } else if ( zoom < zoomMin ) { isZoomIncreasing = true; zoom = zoomMin; } rotoMatrix.a = Math.cos(angle) * zoom; rotoMatrix.b = Math.sin(angle); rotoMatrix.c = -Math.sin(angle); rotoMatrix.d = Math.cos(angle) * zoom; bmd.draw(lenna, rotoMatrix, null, null, null); }, 20);