知道Open Laszlo会出现这个错误吗?

时间:2012-08-17 15:39:34

标签: migration openlaszlo lzx

我目前正在将应用程序从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) {

在那个特定的类中,我有datapath标签,如果我删除,那么我没有收到此错误。

有谁能告诉我为什么会出现这个错误?

1 个答案:

答案 0 :(得分:2)

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

<canvas debug="true">

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

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

</canvas>

在研究JIRA时,我发现它已经作为一个bug存档:LPP-9747 - SWF10: Explicit <datapath> declarations in class definitions lead to compiler error

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

在&lt; c1&gt;的实例中使用datapath标记时和&lt; c2&gt;,编译器不报告任何错误消息,例如:

<canvas>

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

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

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

</canvas>