Ben Affleck cast as Batman\