Привет все. Извините за длинное вступление. Просто постараюсь описать всю глубину пробелмы

Есть клас Game которому передается ссылка на stage

Код AS3:
public class Game extends Sprite
{
public var stageLink:Stage;
public var gameLink:Game;
public var main_menu_screen:MainMenu;
public var level_select_screen:LevelSelect;
public var game_screen:The_Game;
public function Game(_stage:Stage):void
{
stageLink = _stage;
gameLink = this;
stageLink.addChild(gameLink);
....
из него вызывается клас The_Game

Код AS3:
public function play_the_game(level) {
game_screen = new The_Game(this,level);
addChild(game_screen);
}
Далее класс The_Game

Код AS3:
public function The_Game(passed_class:Game, level:int)
{
main_class = passed_class;
main_stage = main_class.stageLink;
//... тут добавляется на main_stage наш MovieClip
level_map = new LevelMap();
level_map.gotoAndStop(level);
addChild(level_map);
//добавляю листенер
level_map.addEventListener(floating_score.MY_EVENT2, showPopandos);
//далее добавляем очки
var new_floating_score:floating_score = new floating_score(this);
......
в конструкторе класса floating_score пишу

Код AS3:
public class floating_score extends MovieClip {
public var dir:Number = Math.random()*6.2831853;
public var main_class1:The_Game;
public var money:int;
public static const MY_EVENT2:String = "MyEvent2";
public function floating_score(passed_class:The_Game) {
main_class1 = passed_class;
main_class1.dispatchEvent(new Event(MY_EVENT2));
.....
По идее должна сработать функция showPopandos (в ней просто trace("я запустилась")

Но ничего такого не происходит.
Помогите пожалуйста разобраться.
Добавлено через 5 минут
Изменил привязку листенера на такую

Код AS3:
this.addEventListener(floating_score.MY_EVENT2, showPopandos);
Теперб функция showPopandos вызывается, но вот такой кусочек кода

Код AS3:
var q:floating_score = floating_score(e.target);
не срабатывает, пишет
Ошибка типа Coercion: невозможно преобразовать The_Game@b6200b1 в floating_score