В вашем примере вы запускаете событие непосредственно в конструкторе (до того, как подключится прослушиватель событий). Попробуйте переместить логику стрельбы в отдельную функцию.
Обновление
Кроме того, похоже, что вы не запускаете событие должным образом. См. эту статью для получения дополнительной информации о том, как правильно запускать события в кросс-браузерном режиме Из этой статьи:
function fireEvent(element,event){
if (document.createEventObject){
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else{
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}