Вызов функции из одного класса, из другого - PullRequest
0 голосов
/ 11 января 2012

У меня небольшая проблема с ActionScript 3, и я пришел сюда, чтобы попросить о помощи.

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

Мои проблемы следующие:

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

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

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

1 Ответ

1 голос
/ 11 января 2012

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

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

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

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

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"));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...