Mootools 1.6 Метод инициализации подкласса не вызывается

Я использую mootools 1.6. Я основал свой код на их учебнике, но когда я пытаюсь его запустить, initialize функция моего подкласса не вызывается. Вместо этого он идет непосредственно к родительскому классу initialize функция. Я пытался установить точку останова внутри подкласса initialize функция, но это действительно не идет туда. На самом деле, мои дополнительные функции также не определены. Это как только функции родительского класса созданы.:(

Вот мой пример кода:
parent.js

   var Parent = new Class({

    initialize: function(){
        alert("parent");
    },
    ...

});


child.js

var Child = new Class ( {
    Extends: Parent, 
    initialize: function () {
        this.parent();
        alert("child");
    },
    ... some additional functions
});


1.) Обратите внимание, что они находятся в разных файлах js.
2.) Эти файлы предварительно загружены cocos2d-js

    ...
    "src/controllers/parent.js",
    "src/controllers/child.js",
    ...

1 ответ

Решение

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

У меня есть 3 файла JS.

parent.js
child.js
orphan.js (calling it orphan hahaha)

Эти 3 файла добавляются в project.json в указанном порядке. Я не пользуюсь orphan.js, Я думал, что уже удалил это из списка, но я был неправ.:(

внутри orphan.js, это класс. Этот класс использует то же имя, что и класс внутри child.js, Он пустой и просто расширяет родительский. Случилось так, что он переопределил объект, так как он загружен после child.js, Я изменил их порядок, чтобы увидеть, будет ли он использовать child.js декларация вместо этого и действительно, это было. Но это не решение. Я просто использовал это, чтобы доказать, что это было переопределено. Решение состояло в том, чтобы удалить этот файл из источника / убедиться, что ни у одного класса нет одинаковых имен.

Уф. ложная сигнализация.

Другие вопросы по тегам