1

我想知道在升级 open laszlo 时是否有人遇到过这样的缺陷。

The tag xxx cannot be used as a child of view
The tag xxx cannot be used as a child of class

为什么会发生此错误?任何想法?

4

1 回答 1

2

错误信息xxx cannot be used as child yyy of view 仅仅意味着你在一个标签内使用了一个标签,而子标签是未知的。简单的例子:

<canvas debug="true">

  <view width="100" height="100" bgcolor="red">
    <unknown_tag />
  </view>

</canvas>

编译器错误消息:class_tag_error.lzx:4:48:标签“unknown_tag”不能用作视图 class_tag_error.lzx:5:20 的子项:未知标签

我记得有些人在从 4.0 升级到 4.2 时遇到了类似的问题,这里是laszlo-dev 邮件列表中的讨论。问题是由代码中的标准 OpenLaszlo 标记引起的,还是由您添加的自定义类或标记引起的?

OpenLaszlo 编译器知道的所有类和标签都有一个模式文件,可以在

$LPS_HOME/WEB-INF/lps/schema/build/lfc.xml

如果编译器抱怨内置 LZX 标记,作为最后的手段,如果该特定标记的类定义仍然存在于您正在使用的 OpenLaszlo 版本中,则可以检查该文件。这是 - 例如 - <view> 标签的类/接口定义的开头:

  <interface extends="node" jsname="LzView" name="view">
    <method args="who, self, prop, refView" name="$lzc$getAttributeRelative_dependencies"/>
    <method args="who, self" name="$lzc$getBounds_dependencies"/>
    <method args="who, self" name="$lzc$getCurrentTime_dependencies"/>
    <method args="ignore" name="$lzc$getMouse_dependencies"/>
    <method args="who, self" name="$lzc$getTotalTime_dependencies"/>
    <method args="ignore" name="$lzc$isMouseOver_dependencies"/>
  ... (continued)

虽然这绝对不是找出标签是否仍然存在的舒适方式。

于 2012-08-11T08:02:38.647 回答