Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь манипулировать (в данном конкретном случае добавить eventListeners) объектами (в данном случае некоторыми MovieClips) на сцене из класса, который не является классом документа.
1120: Access of undefined property trans.
Теперь я знаю, что это, вероятно, область действия, и я, вероятно, не могу получить доступ к объектам сцены напрямую из класса, не являющегося документом (как я делаю в приведенном ниже коде), но я не могу понять, как получить к ним правильный доступ. , Я застрял с этой проблемой в течение нескольких часов, и я прочитал много решений подобных проблем и объяснений проблем, связанных с областью действия, но я все еще не нашел решение. Теперь я надеюсь, что кто-то здесь может мне помочь.
Во всяком случае, вот сделка:
У меня есть 3 динамических текстовых поля (называемых «NL», «FR» и «EN») на моей сцене в мувиклипе «trans». Я пытаюсь добавить списки событий во второй класс, чтобы заставить их что-то делать при нажатии.
Вот мой класс документов:
package {
import flash.display.MovieClip;
// Import custom classes.
import classes.Translate;
public class Main extends MovieClip {
// Init Translation class on load.
public var translate:Translate = new Translate();
public function Main() {
}
}
}
А вот и мой пользовательский класс Translate (который находится в подпапке "classes").
package classes {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Translate extends MovieClip {
public function Translate() {
// Init translation eventListeners.
trans.NL.addEventListener(MouseEvent.CLICK,
function(event:MouseEvent):void {
loadNl();
}
);
trans.FR.addEventListener(MouseEvent.CLICK,
function(event:MouseEvent):void {
loadFr();
}
);
trans.EN.addEventListener(MouseEvent.CLICK,
function(event:MouseEvent):void {
loadEn();
}
);
}
public function loadNl() {
trace("NL");
}
public function loadFr() {
trace("FR");
}
public function loadEn() {
trace("EN");
}
}
}
Заранее спасибо, что нашли время помочь мне.
Дрис