Flash 带AS 2的闪存中的RTL输入

Flash 带AS 2的闪存中的RTL输入,flash,actionscript-2,right-to-left,Flash,Actionscript 2,Right To Left,我是Flash新手,尝试在Flash中实现一个简单的联系人表单 现在,当用户用希伯来语输入文本时,会打乱顺序,所有字母都颠倒了(意思是:“this”变成“siht”) 现在我无法将代码移动到AS3,因为它是在用AS2编写的更大项目中实现的 编辑: 如果不出现这种情况,单词顺序不正确,每个单词都写在最后一个单词之前,而不是之后,有没有办法解决这个问题 我找到的关于这个主题的所有信息要么是旧的,要么是关于输出文本的。 如何实现这一点?您必须截取文本字段的onChanged事件,并手动将光标放在新输入

我是Flash新手,尝试在Flash中实现一个简单的联系人表单

现在,当用户用希伯来语输入文本时,会打乱顺序,所有字母都颠倒了(意思是:“this”变成“siht”) 现在我无法将代码移动到AS3,因为它是在用AS2编写的更大项目中实现的

编辑: 如果不出现这种情况,单词顺序不正确,每个单词都写在最后一个单词之前,而不是之后,有没有办法解决这个问题

我找到的关于这个主题的所有信息要么是旧的,要么是关于输出文本的。
如何实现这一点?

您必须截取文本字段的
onChanged
事件,并手动将光标放在新输入文本的左侧:

myInputField.onChanged = function(field:TextField) { 
    var sel:Number = Selection.getBeginIndex();
    Selection.setSelection (sel-1, sel-1);
};

我只需要解决一个类似的任务(旧项目无法切换到新组件)。那个问题会给你带来一大堆麻烦。我强烈建议使用TLF文本字段和支持RTL的AS3

没有?那么,让我们开始:

  • 如果字符确实在RTL unicode范围内(易于googleable),则光标只需放在左侧。普通字符必须继续浮动LTR。是的,它可以混合
  • 删除/退格:应在RTL单词周围反向工作。毕竟,您刚才键入的字符应该始终使用空格删除。这意味着如果你遇到一个LTR单词,你必须跳转到另一边
  • 输入:新行从左侧开始。当中断RTL线时,左侧部分必须进入下一行,右侧部分保持不变。在删除打断时,必须为删除/退格镜像此内容
  • L/R光标键。也可反转。LTR文字除外
  • 标点符号和空格。它们在一个RTL单词后算作RTL,在一个LTR单词后算作LTR
  • 即使在所有这些之后,文本也会以错误的顺序在内部保存。RTL是自动反转的。也就是说,你必须扫描所有粘贴的文本。哦,复制事件对文本字段不起作用。因此,从伪造的RTL flash文本字段复制是非常严格的。您保存或存储到数据库中的所有内容都必须反转。但只有RTL部分及其提示

我注意到,只有当文本字段为LTR(我的坏)时,才会发生这种情况。当文本字段为RTL时,它只是将单词排序错误,每个单词都写在最后一个单词之前,而不是之后,你知道如何修复吗?