gpt4 book ai didi

migration - Open laszlo 5.0 中 this.__LZtextclip.text 的合适替代品是什么

转载 作者:行者123 更新时间:2023-12-04 05:33:38 24 4
gpt4 key购买 nike

我想知道这条线的合适替代品是什么。

this.__LZtextclip.text

我正在使用它来获取文本节点中存在的字符串。这在 Openlaszlo 3.3 中运行良好,但在 4.9 和 5.0 中出现问题

我尝试将其更新为
this.sprite.__LZtextclip.text

我收到一个错误:
79: Error: Access of possibly undefined property __LZtextclip through a reference with static type LzSprite, in line: Debug.write(this.sprite.__LZtextclip.text);

知道为什么会发生这个问题吗?

最佳答案

如果您尝试访问文本字段的文本内容,为什么不直接访问属性文本?

<canvas> 

<text name="sample" id="gRead" />

<handler name="oninit">
gRead.setAttribute('text',"HI");
Debug.info(gRead.text);
</handler>

</canvas>

在 OpenLaszlo 3.3 中有 getText() 方法,它为您提供相同的值。在您的代码中访问 mx.textfield 不适用于 DHTML 运行时。

编辑:添加了有关剥离 HTML 标签的信息
Flash 文本字段类 flash.text.Textfield提供 API 以在 Textfield 实例中启用 HTML 标记内容。有两种不同的属性,一种叫做 text ,另一个 htmlText .如果你想直接访问一个 lz.text 实例的 Flash Textfield 对象,它是 lz.text 实例的 display 对象的一个​​属性:
// Flash Textfield instance
gRead.getDisplayObject().textfield
// Pure text content
gRead.getDisplayObject().textfield.text
// Formatted text
gRead.getDisplayObject().textfield.htmlText

您应该知道 Flash 会自动将 HTML 格式添加到您设置为内容的任何文本字符串中。当你做
gRead.setAttribute('text',"HI");

textfield.htmlText 值是
<P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="11" COLOR="#000000" LETTERSPACING="0" KERNING="1">HI</FONT></P> 

对于 DHTML 运行时,文本内容被添加为
标签的 innerHTML,并且没有标准化的 API 来检索带有内容的标签的 DOM 结构的纯文本内容。您可以编写自己的函数来提取文本内容,或使用现有框架中的 JavaScript 函数 - 如 jQuery text() function - 为 DHTML 运行时实现相同的结果。

我想原因是 Laszlo 从 OpenLaszlo 4.0 或 4.1 开始使用基于 Dojo 的富文本编辑器进行 HTML 格式的文本输入。

在剥离标签时跨运行时保持一致行为的最佳方法是在服务器端进行转换。如果您想在多行文本中进行一致的空白处理,则尤其需要这样做,因为浏览器处理空白的方式存在差异。之前在 Stackoverflow 上已经回答了如何最好地从 JavaScript 中的字符串中剥离标签的问题,例如 JavaScript: How to strip HTML tags from string?

这是一个跨运行时示例,它适用于 Firefox、Chrome 的 DHTML,它应该适用于 IE9+:
<canvas> 

<text name="sample" id="gRead" />

<handler name="oninit"><![CDATA[
gRead.setAttribute("text", 'Hello <b>World</b> <a href="http://www.openlaszlo.org">OL</a>');
Debug.info("gRead.text=" + gRead.text);
if ($dhtml) {
Debug.info(gRead.getDisplayObject().textContent);
} else {
Debug.info(gRead.getDisplayObject().textfield.text);
}
]]></handler>

</canvas>

关于migration - Open laszlo 5.0 中 this.__LZtextclip.text 的合适替代品是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com