0

我的表单上有一个 MX TextInput 字段。由于我们的一位用户在光标闪烁时出现癫痫发作问题,我正在尝试禁用它但没有成功。通过控制面板,我能够防止 Office 应用程序和 Web 浏览器中的光标闪烁,但不能使用使用 Flash Player 的 Flex 应用程序。有没有人遇到过这个问题并有解决方案?

4

1 回答 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 回答