Jak wywołać funkcję w klasie z innej klasy?

Aktualizacja: zmieniony tytuł, aby lepiej odzwierciedlał moje pytanie

Cześć wszystkim :)

Moje pytanie dotyczy dziś CustomEvent, który próbuję wysłać z jednej podklasy do drugiej.

Użyłem mojej klasy CustomEvent, aby przekazać zdarzenie z podklasy do mojej głównej klasy, ale nie jestem pewien, kto to zrobi między podklasami.

Moja niestandardowa klasa zdarzeń

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");
    }

}

Podklasa INTRO - wydarzenie wysyłkowe

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);
    }

}

NAWIGACJA Podklasy - gdzie słucham imprezy Musisz wywołać tę funkcję w klasie nawigacji:

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, więc wierzę, że mój problem tkwi w klasa nawigacji, jak poprawnie dodać tutaj addEventListener? Nie dostaję żadnych śladów w mojej funkcji introPlayButtonClick.

Jak to działało w mojej klasie głównej za pomocą zdarzenia PAUSE_MOVIE, czy przyłączyłem eventListener do klasy Navigation poprzez nazwę zmiennej nv:

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

Ale ponieważ dodałem detektor zdarzeń wewnątrz klasy Navigation dla zdarzenia INTRO_CLICKED, pomyślałem, że wszystko, czego potrzebowałem, to(to.) dodane, ale jak dotąd nie wywołuję tego zdarzenia.

Jakieś pomysły, wskazówki, myśli?

questionAnswers(3)

yourAnswerToTheQuestion