2012-01-11 8 views
0

У меня небольшая проблема с ActionScript 3, и я пришел сюда, чтобы попросить о помощи.Вызов функции из одного класса, из другого

У меня есть два класса. Один называется Sledge и один называется Sock, также есть класс документа, который называется Main.

Мои вопросы заключаются в следующем:

  • Внутри Sledge, вызвать функцию, которая определена внутри класса Main документа. Как я могу сказать классу, чтобы перейти к классу документов и запустить эту функцию? Это также будет одинаково для других классов или только для класса документа?

  • Внутри Sledge, у меня есть следующее заявление: if(hitTestObject(sock.myHitArea)) { /* somecode*/ }

    sock является экземпляром другого класса индивидуального, и к этому моменту уже был создан. Однако, когда я пытаюсь запустить это, мне говорят, что он не определен. Как я могу это решить?

ответ

1

Есть некоторые проблемы двусмысленности в отношении того, как вы выразили свой вопрос. Это поможет, если вы разместите короткую форму кода для проблемы.

Однако, я постараюсь ответить на первый вопрос:

Внутри саней, вызвать функцию, которая определена внутри основного класса документа. Как я могу сказать классу, чтобы перейти к классу документов и запустить эту функцию?

Вы хотели бы передать основной класс к Санки класса или использование событий, является предпочтительным. Если пройти класс будет выглядеть следующим образом ...

class Sledge { 
    private var main:Main; 
    function Sledge(main:Main) { 
     this.main = main; 
    } 
    function doSomething():void { 
    main.runSomeFunction(); 
    } 
} 

Или, если с помощью событий:

class Main { 
private var sledge:Sledge; 
    function Main() { 
     sledge = new Sledge(); 
     sledge.addEventListener("mainDoSomething", doSomething); 
    } 
    private function doSomething(e:Event):void { 
    // .... do stuff 
    } 
} 
class Sledge extends EventDispacter { 
    function Sledge() { 
    } 
    public function doSomething():void { 
    dispatchEvent(new Event("mainDoSomething")); 
    } 
} 
Смежные вопросы