修复TextField / Text中的bug所需

时间:2010-02-09 05:47:04

标签: flex actionscript-3

一个复杂的场景 - 只是好奇其他人是否能想出一些东西:

我有一个Text控件,当我滚动它并用光标停止滚动一些带有url的文本时,光标不会恢复到一只手,而且flash播放器开始表现就好像正在进行选择一样从最后一个光标位置开始。因此,据我所知,闪存中有一个虚假的错误。

以上可能并不完全清楚所以让我详细说明。如果您抓住滚动条拇指并开始上下移动,则实际上不必将鼠标指针放在拇指上。当您停止滚动时,鼠标指针可能位于浏览器窗口之外,位于Flash应用程序内部,但当前不在滚动条滑块上或任何位置。当您使用html锚点(超链接)将鼠标指针放在文本上时停止滚动时,会出现前面提到的错误。此时光标进入某种状态,并且不显示url指针,并且还表现为从滚动之前的最后一个光标位置进行了一些文本选择。

所以问题是,我可以在代码中模拟什么样的事件来使闪存摆脱它所处的错误状态。此外 in 我可以执行这个模拟事件的什么事件(给定例如,没有AS3事件来表示滚动结束。)

要清楚,所讨论的Text控件位于画布上,该画布(称为A)位于另一个实际拥有滚动条的画布上,并通过更改画布A的scrollRect进行滚动。

2 个答案:

答案 0 :(得分:0)

我遇到了与Flex 4中的TextArea完全相同的问题:Scroll(textarea内容比它的容器大)并在链接上释放鼠标,并且光标不能正常工作。

我认为这是一个错误,请尝试将其提交给Adobe Bug and Issue Management System。我会投票支持:)。

您使用的是Flex 3还是4?如果你在Flex 4中,我可以提出一些建议。作为基础,我将检查Flex 3 SDK中的TextArea和相关源代码,并找出从链接和诸如此类的东西调度的事件。如果你可以消除它是Flash TextField(TextArea使用的)的可能性,那么它就是一个Flex bug。尝试调度他们在TextArea中调度的事件,从调度它的事件开始(Event.CHANGE是我能看到的所有内容,快速浏览一下)。

祝你好运!

答案 1 :(得分:0)

这真的是对viatropos的回应。

我只能使用Flex 3.5参考中Text文档页面末尾的代码示例复制错误。

只需用包含锚点标记(<a>...</a>)的大块htmlText替换该示例中的htmlText。然后使浏览器窗口变小。然后用鼠标单击htmlText的某个任意区域(该步骤很重要。)然后使用拇指滚动。使用光标直接在您创建的一个超链接上停止滚动并释放鼠标。选择并突出显示整个htmlText块,鼠标指针不会恢复到手形。 (好吧,它会在你点击其他地方之后。)

至于通过他们的错误跟踪系统向adobe报告,我想如果我想等几个月才能修复它。我在一年前报告了一个从未修复的真正的错误。

但是按照你的建议检查他们的源代码 - 可能是我最好的选择。