【问题标题】:TLFTextfield broken after upgrading from CS5 to CS5.5从 CS5 升级到 CS5.5 后 TLFTextfield 损坏
【发布时间】:2012-04-03 05:24:14
【问题描述】:

对于我的项目,我使用以下内容:

  • FlashDevelop 3.3.4 RTM
  • Flash Pro CS 5(仅限库,无代码)

前段时间我们开始使用 TLFTextfields。我必须做的一件事是在 FlashDevelop 项目中包含 Adob​​e 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.

【问题讨论】:

  • 我真的很困惑,因为查看 Adob​​e 的文档,我看不到 ComposeState 类或 TLFContainerController 类(甚至是 fl.text.container 包)。有一个 FlowGroupElement 类,但没有称为 createGeometry 的方法,甚至在其父类中也没有。
  • 当前版本的FlowElementGroup中没有名为“createGeometry”的方法,这可能是抛出错误的原因。

标签: flash flashdevelop swc tlf flash-cs5.5


【解决方案1】:

非常遗憾的是,Adobe 没有免费分发 tlfruntime.swc,而且似乎也没有花太多时间解释更改。

我遇到了同样的问题:TLFTextField 的 API 在 TLF2 中更改,它与 CS5.5 捆绑在一起。最显着的变化是完全删除了 TextLayoutFormatValueHolder(很好摆脱!),但还有一些其他的变化,我不记得了。

复制较新的 tlfruntime.swc 是开始的正确方法,但不幸的是,现在您还必须调整您的代码。您应该在 FlashDevelop 中打开使用 TLF 的旧库的所有部分(与编辑时的所有代码检查一样,Flash IDE 没有多大帮助)并查看是否有任何错误消息,然后检查 @987654322 @。注意过滤器设置 - 您可能会查看旧版本的 TLFTextField!

在大多数情况下,这些更改不应该花费太多精力。我在几个小时内完成了。但很可能存在一些边缘情况,您必须进行更广泛的重写。

【讨论】:

  • 感谢您提供此信息,它让我获得了更多见解。 FlashDevelop 没有给我任何编译器错误,但是当我在 FD 中调试时,我得到相同的 Illegal Override 错误。不幸的是,我没有得到堆栈跟踪或任何有用的信息,说明我所做的调用是错误的。我已经根据您上面链接的 API 文档检查了我从 TLFTextField 调用的每个属性和方法,它们都在那里。所以我不确定我所说的是错误的:(
  • 如何切换到 4.5.1?当我打开项目属性并转到 SDK 时,只列出了 4.6.0。我单击了管理并展开已安装的 Flex SDK,然后再次列出了 4.6.0。
  • 那一定是tlfruntime.swc。你确定你已经重新编译了你所有的库吗?也许旧的 SWC 包含旧版本的东西,而类加载器必须处理冲突的库?
  • hmm 我还没有重新编译我所有的资源库...它们中的大多数仍然是从 Flash CS 5 编译的。我现在就去做,不幸的是大约有 40 个他们。
  • 很难,但这肯定是问题所在 - 任何具有文本字段的资产都会编译旧的 tlfruntime.swc。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 2016-09-14
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
相关资源
最近更新 更多