(CNN)— After receiving petitions from more than 2 million fans, Hollywood director Zack Snyder has terminated the contract allowing Ben Affleck to portray Batman.

"Quite simply, we didn't do our market research correctly," Snyder said. "But we listen to the fans and want to give them what they deserve. This is why we have made a new casting choice."

Snyder said that they have completed negotiations with Academy Award winning actor Tom Hanks to play the Caped Crusader in the Batman/Superman crossover film.

"We feel that it will be interesting to have Hanks play a kinder, more emotional Batman who defeats bad guys with his winning smile, rather than an impressive arsenal and martial arts skills. It also gives us a chance to allow him to fall in love."

Sources told CNN that Snyder is currently in negotiations to cast Meg Ryan as Catwoman.