Это связано с визуализатором текста, а не с ActionScript как таковым.Если вы используете новый рендерер текста Flash 10, который поддерживает двунаправленную и сложную разметку текста, то да, пользовательский ввод может отображаться неожиданным образом.Новый текстовый рендерер используется такими классами, как TextLine
.Вы можете увидеть это в действии, вставив что-то вроде:
well!nmad!
в демонстрационный пример макета текста на http://blog.theflashblog.com/?p=442.
В старом текстовом редакторе вы не получите это, но вытакже не сможет правильно отображать сложные сценарии.
Когда вы принимаете ввод ненадежного пользователя для включения в более широкую строку текста, независимо от того, задействован Flash или нет, вы должны отфильтровать эти символы.Хорошая группа для фильтрации - W3C, обозначенная , которая не подходит для разметки .Это включает переопределения двунаправленного текста и кучу других обычно проблемных контрольных кодов.
Я бы порекомендовал большинству веб-приложений регулярно отфильтровывать все из них, а также все контрольные коды ASCII и C1, кроме новой строки (U +0000 – U + 0009, U + 000B – U + 001F, U + 007F – U + 009F).
(Фильтры ненормативной лексики не являются веской причиной для запрета биди-IMO - их так легко обманутьпочти все, что это даже не стоит беспокоить.)