Flex не может добавить модуль в качестве DisplayObject - PullRequest
0 голосов
/ 05 июня 2011

Я пытаюсь загрузить модуль и добавить его в объект mx: box с именем "mod".Вот мой код:

var m:IModuleInfo = ModuleManager.getModule("modules/Module_Category.swf");
m.addEventListener(ModuleEvent.READY, function(e:Event):void 
{
     this.mod.addChild(m.factory.create() as DisplayObject);
});
m.load();

Проблема в том, что когда я пытаюсь добавить его в мод с помощью addChild Flex, мне сообщают, что в строке с помощью addChild

TypeError: Ошибка # 1010: Оператор не определен и не имеет свойств.

Что это значит?

1 Ответ

3 голосов
/ 05 июня 2011

Ваш "this" объем неверен. Вы используете 'this' внутри анонимной функции. Внутри этой функции «this» относится к самой функции, а не к классу, к которому вы, вероятно, стремились. Я не вижу остальную часть вашего класса, но я вижу, что область действия this не имеет свойства mod, поэтому ваш код не будет работать там. Вот почему вы получаете эту «не определенную» ошибку: «this.mod» не существует.

Я вижу 3 решения (это зависит от того, как выглядит остальная часть вашего кода, но одно из них должно соответствовать вашим потребностям):

  1. Просто удалите «это». Ваш ученик 'mod' будет затем правильно ссылаться.
  2. Преобразуйте эту анонимную функцию в функцию уровня класса. Затем this указывает на этот класс, а не на функцию.
  3. Создайте псевдоним для 'this' вне анонимной функции.

Какой-то код объяснит, что последний лучше:

var myClass:MyClass = this;
m.addEventListener(ModuleEvent.READY, function(e:Event):void 
{
    myClass.mod.addChild(m.factory.create() as DisplayObject);
});
...