Como chamar uma função em uma classe de outra classe?

Atualização: título modificado para melhor refletir minha pergunta

Oi pessoal :)

Minha pergunta hoje gira em torno de um CustomEvent que estou tentando enviar de um sub Classe para outro.

Eu usei minha classe CustomEvent para passar um evento de uma sub Classe para minha classe principal, mas não tenho certeza de quem fazer isso entre as subclasses.

Minha classe de evento personalizado

package src.events {
import flash.events.Event;

public class CustomEvent extends Event 
{
    public static const CHANGE:String="onChange";
    public static const COMPLETE:String="onComplete";
    public static const IMAGE_LOADED:String="onImageLoaded";
    public static const SWF_LOADED:String="onSWFLoaded";
    public static const SWF_UNLOAD:String="onSWFUnload";
    public static const CLICK:String="onClick";
    public static const PAUSE_MOVIE:String="onPause";
    public static const INTRO_CLICKED:String="introClicked";

    public var params:Object;

    public function CustomEvent(type:String, params:Object, bubbles:Boolean = false, cancelable:Boolean = false)
    {
        super(type, bubbles, cancelable);
        this.params=params;
    }

    public override function clone():Event 
    {
        return new CustomEvent(type, this.params, bubbles, cancelable);
    }

    public override function toString():String 
    {
        return formatToString("CustomEvent","params","type","bubbles","cancelable");
    }

}

Sub Classe INTRO - despacha evento

package src.display {

import gs.easing.*;
import gs.TweenLite;
import flash.text.*;
import flash.events.*;
import flash.display.*;
import flash.geom.Matrix;
import flash.geom.ColorTransform;

// ☼ ----------------------------------------- Imported Custom Classes
import src.events.CustomEvent;

// ☼ ----------------------------------------- Intro Class
public class Intro extends Sprite 
{
    private var playBtn:MovieClip;

    // ☼ ----------------------------------------- Constructor
    public function Intro():void 
    {
        this.addEventListener(Event.ADDED_TO_STAGE, init);
    }

    // ☼ ----------------------------------------- Init
    public function init(event:Event):void 
    {
        draw();
    }

    public function draw():void 
    {           
        playBtn = new PlayThumb;
        playBtn.buttonMode = true;
        playBtn.x = 582;
        playBtn.y = 259;
        playBtn.alpha = 1;

        addChild(playBtn);

        playBtn.addEventListener(MouseEvent.MOUSE_UP, clicked);
    }

    private function clicked(e:MouseEvent):void 
    {
        trace("clicked big play");
        dispatchEvent (new CustomEvent(CustomEvent.INTRO_CLICKED, {}));
        trace("event = "+CustomEvent.INTRO_CLICKED);
    }

}

Sub-classe NAVEGAÇÃO - onde estou ouvindo o evento Precisa chamar essa função dentro da classe de navegação:

function introPlayButtonClick(e:CustomEvent):void
        {
            trace("introPlayButtonClick called");

            TweenLite.to(buttons[0], 1, {y:20, ease:Strong.easeOut});
            TweenLite.to(buttons[1], 1, {y:navBtnY, ease:Strong.easeOut});
            TweenLite.to(introTab, 1, {y:60, ease:Strong.easeOut});
            TweenLite.to(scrollerMov, 1, {y:60, ease:Strong.easeOut});
            $btn1 = true;
            $btn2 = false;

            trace("introPlayButtonClick called --- end");
        }

Ok, então eu acredito que meu problema está em a classe de navegação, como eu adiciono corretamente o addEventListener aqui? Eu não estou recebendo nenhum dos traços na minha função introPlayButtonClick.

Como funcionou na minha turma principal com o evento PAUSE_MOVIE, eu estava anexado o eventListener à classe Navigation através do nome da variável nv:

nv.addEventListener("onPause", pauseMovie); // Inside of MAIN class

Mas desde que eu estou adicionando o ouvinte de eventos dentro da classe de navegação para o evento INTRO_CLICKED eu pensei que tudo que eu precisava era(isto.) adicionado, mas até agora eu não estou recebendo esse evento para acionar.

Alguma idéia, dicas, pensamentos?

questionAnswers(3)

yourAnswerToTheQuestion