Быстрый вопрос. Я гуглил это все утро, но его либо нет, либо написано так, что он не регистрируется. Я склонен верить последнему, поскольку мне кажется, что это должно быть чем-то совершенно тривиальным для меня.
Я сделал небольшой Flash-файл, используя AS 3.0, и впервые я действительно смог придерживаться ООП-способа выполнения действий, а не собирать воедино разные вещи из временной шкалы, чтобы обойтись без все работают в классах.
Так что я бы хотел оставить это так, но одна вещь ускользает от меня: я не могу вызвать метод экземпляра другого класса (кроме того, из которого я вызываю), не прибегая к "DocumentClass ( корень) .instanceName.method. "
Интуиция говорит мне, что должен быть лучший способ сделать это (например, без необходимости ссылаться на класс документа каждый раз, когда я вызываю функцию экземпляра другого класса; так что прошей 5 мне.
У кого-нибудь есть лучший способ сделать это, которым он может поделиться?
Заранее спасибо! SS
edit: вот соответствующий код:
Основной класс:
package myApp {
import flash.display.*;
import flash.events.*;
public class Main extends flash.display.MovieClip {
public var background;
public var control;
public function Main() {
//load the background
this.background = new Background();
this.addChild(background);
//load the control
this.control = new Control;
this.addChild(control);
}
}
}
Фоновый класс:
package myApp {
import flash.display.*;
import flash.events.*;
public class Background extends flash.display.MovieClip {
public function Background() {
this.x = 0;
this.y = 0;
}
public function doSomething() {
//do something here
}
}
}
Класс управления:
package myApp {
import flash.display.*;
import flash.events.*;
public class Control extends flash.display.MovieClip {
private var section01;
private var section02;
private var section03;
public function Control() {
//some constructor code here
}
public function doSomethingCaller() {
MyApp(root).background.doSomething(); <--- HERE
}
}
}