2

我目前正在将应用程序从 open laszlo 从 3.3 迁移到 5.0。我在其中一门课中遇到了这个错误。

line unknown: Error: A conflict exists with inherited definition $lzc$class_xxx.$datapath in namespace public, in line: var $classrootdepth;var $datapath;function $lzc$class__mjb ($0:LzNode? = null, $1:Object? = null, $2:Array? = null, $3:Boolean = false) {

在那个特定的类中,我有数据路径标签,如果我删除它,那么我不会收到这个错误。

谁能告诉我为什么会发生这个错误?

4

1 回答 1

2

我设法使用此代码重现错误消息:

<canvas debug="true">

  <class name="c1" extends="node">
    <datapath />
  </class>

  <class name="c2" extends="c1">
    <datapath />
  </class>

</canvas>

调查 JIRA,我看到它已经作为一个错误提交:LPP-9747 - SWF10: Explicit <datapath> declarations in class definition导致编译器错误

似乎存在相对较多的错误或情况,其中编译器会吐出难以理解的错误消息或异常 - 特别是在将 3.x 或 4.0/4.1 应用程序升级到具有 SWF10+ 运行时支持的 OpenLaszlo 版本时。这是非常不幸的,因为它很容易给人一种编译器有问题的印象。

当您在 <c1> 和 <c2> 的实例中使用数据路径标记时,编译器不会报告任何错误消息,例如:

<canvas>

  <class name="c1" extends="node">
  </class>

  <class name="c2" extends="c1">
  </class>

  <c1>
    <datapath/>
    <c2>
      <datapath />
    </c2>
  </c1>

</canvas>
于 2012-08-18T10:03:40.873 回答