我的表单上有一个 MX TextInput 字段。由于我们的一位用户在光标闪烁时出现癫痫发作问题,我正在尝试禁用它但没有成功。通过控制面板,我能够防止 Office 应用程序和 Web 浏览器中的光标闪烁,但不能使用使用 Flash Player 的 Flex 应用程序。有没有人遇到过这个问题并有解决方案?
问问题
329 次
1 回答
0
这是一个简单的解决方案,可以一起删除光标。我不确定您是要删除光标(可行)还是停止光标闪烁(似乎不太可行)。
它通过将底层TextField
对象的selectable
属性设置为 false 来工作。MXTextInput
类有它自己的selectable
属性,但是,其中的代码TextInput
还要求该editable
属性为 false 以禁用选择。所以你需要扩展 TextInput 来解决这个问题。
底层TextField没有公开任何属性来阻止光标闪烁(我知道)。TextField
是 Flash Player 的内置类之一,因此修改这种低级行为的机会似乎很小。
这显然破坏了在TextInput
. 您可能必须设计一种方法来临时启用选择以支持复制/粘贴或选择文本。
package
{
import mx.controls.TextInput;
public class CustomTextInput extends TextInput
{
public function CustomTextInput()
{
}
private var _hideCursor:Boolean = true;
private var hideCursorChanged:Boolean = true;
public function get hideCursor():Boolean
{
return _hideCursor;
}
public function set hideCursor(value:Boolean):void
{
if (value == hideCursor)
{
return;
}
hideCursorChanged = true;
_hideCursor = value;
invalidateProperties();
}
override protected function commitProperties():void
{
super.commitProperties();
if (hideCursorChanged)
{
hideCursorChanged = false;
textField.selectable = !_hideCursor;
}
}
}
}
于 2013-07-01T18:26:40.127 回答