2

---------------- 1 ------------------

您好亲爱的开发者朋友们,

我面临一个非常奇怪的错误:让我解释一下。

我目前正在 AS3 中开发 E-Learning 应用程序,培训以 FLA 章节的形式出现,扩展了我们将命名为“ChapterDefault”的父类。

今天突然间,我不知道为什么,但我的一个章节决定他的文档类构造函数必须被无限调用(我在文档类构造函数的开头放置了一个跟踪,它被无限触发)

更准确地说:

我有一个扩展父类(ChapterDefault.as)的 FLA(章节),所以我的文档类(chapter.as)如下:

public class Chapitre extends ChaptitreDefaut{
    public function Chapitre (){
        trace("Construct");
        super();
    }
}

结果 :

Construct
Construct
Construct
Construct
...

请我现在已经拉了 5 个小时的头发,任何线索或建议都可以采纳。提前谢谢,不要犹豫,问我更多细节。

如果它很奇怪,对不起我的英语^^

---------------- 2 ------------------

ChapterDefault 是一个非常大的类(大约 1.5k 行),所以我不会把它放在这里 ^^ 而且我真的不认为它来自它,因为其他每一章都是从它继承而来的,没有任何问题。

这是它的构造函数(它是法语):

public function ChapitreDefaut()
{
    MonsterDebugger.initialize(this);

    if(ChargeurFormation.charge){
        init();
    }
    else{
        // On récupère le fichier XML dans le cas d'une compilation isolée : 
        c_XML = new ChargeurXML();
        c_XML.addEventListener(IOErrorEvent.IO_ERROR, erreurCheminXml);
        c_XML.addEventListener(Event.COMPLETE, chargementXmlTermine);
        c_XML.charge(new URLRequest("../../../init/init.xml"));
        MonsterDebugger.trace(this, "Chargement du XML lancé", "Max", "Constructeur ChapitreDefaut", 0xFF00FF);

        c_PrefixeCheminRelatif = "../../../fla/";
    }
    // Nous sommes dans un chapitre, toutes les questions s'affichent dans un cadre :
    Question.AVEC_CADRE = true;
    // Ecoute des évènements
    this.addEventListener(CHAPITRE_PRET, lanceChapitre);
    this.addEventListener(Event.ADDED_TO_STAGE, ajoutScene);
}

如果你想要代码的另一部分,我也可以给你。

非常感谢

---------------- 3 ------------------

感谢您的回答,但我认为这不是提到的 3 个中的任何一个:

1)我的父/子类拼写正确

2) 无法创建新实例!“LesTypesDePression”是我的 FLA,之前的代码用于文档类,所以我不能通过 ctrl+enter 多次调用它

3) 在 init() 中,我只是实例化 Sprites/shapes 等,无论如何,在这种情况下,您可以将 ChargeurFormation.charge 视为永久错误,这样就不会发生。

PS:我试图删除 super(),并没有改变任何东西。

4

2 回答 2

0

等待 - 构造函数/类 ChapterDefault 的名称有两种不同的语言,具体取决于您是向我们展示 ChapterDefault 的构造函数还是 Chapter 的构造函数。因此,类/构造函数在实际代码中由两种不同的拼写来引用。如果这在这两种情况下都是您的真实代码,那么这是一个错误。

在这种情况下,尝试更改 Chapter 的构造函数中的代码以使用法语拼写,让我们看看是否能解决问题。也许您在某个地方有另一个类的英文拼写在其实现中存在问题。

如果这不起作用,那么它可能是以下两件事之一:

1 - 对象的新实例在外部一遍又一遍地创建;请向我们展示有关章节对象的声明和实例化的代码。

2 - ChapitreDefault() 中的 init() 函数要么在内部创建 Chapter 对象,要么试图通过一些奇怪的方式调用其构造函数;请向我们展示这个的实现。

于 2013-09-09T15:42:06.693 回答
0

我终于解决了我的问题:

它来自我的共享库加载,我不小心将我的章节配置文件导入到我的共享库中,该共享库中有这个确切的章节作为文档类,然后在编译本章时,我的共享库可以访问他不需要的文档类。

最后没有错误,只是对 IDE 的误用。仍然感谢您的帮助。祝你今天过得愉快。

于 2013-09-10T08:19:06.957 回答