对于我的项目,我使用以下内容:
前段时间我们开始使用TLFTextfields。我必须做的一件事是包括FlashDevelop项目中Adobe Flash CS 5文件夹中的tlfruntime.swc文件。请注意,我将此文件复制到项目文件夹并包含它,我不只是直接从CS5路径包含文件。
此后我获得了一台具有Flash CS 5.5的新计算机。我在CS 5.5中重新编译了一个swf库,现在当我运行程序时,我得到了:
Illegal override of createTextLine in flashx.textLayout.compose.ComposeState
我认为FlashDevelop项目中包含的tlfruntime.swc已过期,需要使用CS 5.5中的那个进行更新。所以我从CS 5.5路径复制了tlfruntime.swc,将它包含在FlashDevelop项目中(而不是旧文件),但现在我得到了这个:
Illegal override of softKeyboardActivatingHandler in fl.text.container.TLFContainerController.
任何人都可以协助我做些什么来让TLFTextfields再次在CS 5.5中运行吗?
更新:我已将FlashDevelop更新为4.0.1 RTM,现在我收到此错误:
Illegal override of createGeometry in flashx.textLayout.elements.FlowGroupElement.
答案 0 :(得分:1)
非常不幸的是,Adobe没有自由分发tlfruntime.swc,也似乎也没有花太多时间来解释变化。
我遇到了同样的问题:TLFTextField的API在TLF2中更改了,它与CS5.5捆绑在一起。最显着的变化是完全删除TextLayoutFormatValueHolder(很好的摆脱!),但是还有其他一些变化,所有这些都让我不记得了。
复制较新的tlfruntime.swc是正确的入门方式,不幸的是,现在您还必须调整代码。您应该在FlashDevelop中打开使用TLF的旧库的所有部分(与在编辑时检查所有代码一样,Flash IDE将无济于事)并查看是否有任何错误消息,然后检查{{ 3}}。小心过滤器设置 - 您可能会看到旧版本的TLFTextField!
在大多数情况下,这些变化不应该花费太多精力。我在几个小时内完成了。但是可能存在一些边缘情况,你需要进行更广泛的重写。