Im not sure its possible to do that without changing the interface of camera, particularly without replacing camera.scroll with a simple scrollx and scrolly. The problem is that the logic has to be performed when a coord is set. Camera cannot decide how a coord is set when it does not directly own the property.