0

Я замечаю странное поведение с AS2 и использование шрифтов в текстовом поле, которое добавляется на сцену с помощью createTextField(). Это для textField, который изначально говорит Year - и пользователь может ввести год, нажмите ok и год будет принят, а textField вернется к Году. Я хочу, чтобы это всегда будет шрифт без засечек, такие как Arial (конечно, это косяк быть трудно!)Проблема при использовании Flash AS2 embedFonts = true AND textField.onSetFocus() вместе

Вот что я хочу достичь -

1) При щелчке мышью на текстовое поле, слово «год "очищается, а мигающий курсор указывает, что текст можно ввести. 2) Когда пользователь нажимает кнопку ОК (и при условии, год четырехзначный номер) текстовое поле восходит к говоря «Год» (в Arial)

Мой код -

this.createTextField("uiYear", 99, 0, 0, 65, 20); 
uiYear.type = "input"; 
uiYear.antiAliasType="advanced"; 
uiYear.restrict = "0-9"; 
// 
var my_fmt:TextFormat = new TextFormat(); 
my_fmt.font = "Arial"; 
my_fmt.size = 12; 
my_fmt.align = "left"; 
// 
uiYear.embedFonts = true; 
uiYear.setTextFormat(my_fmt); 
uiYear.text = "Year"; 
// 
uiYear.onSetFocus = function() { 
    if(uiYear.text == "Year") { 
     uiYear.text = ""; 
    } 
} 
// 
button_ok.onRelease = function() { 
    uiYear.text = "Year"; 
} 

выглядит нормально, верно?

Что я заметил это -

Когда я нажимаю на текстовое поле слово «год» исчезает, но мигающий курсор не показывает, и я не могу ввести текст в текстовое поле. Если удалить строку -

uiYear.embedFonts = true; 

... то он работает нормально, слово «год» исчезает, и я могу набрать номер в текстовое поле, когда я нажимаю TextField. Таким образом, внедрение шрифтов, по-видимому, предотвращает фокусировку фокуса на текстовом поле после срабатывания функции onSetFocus. Однако текст, который я сейчас вводил, не является Arial, когда я нажимаю кнопку ok, а слово «Year» заменяется, оно находится в шрифте с засечками - например, Times или что-то в этом роде. Я этого не хочу!

Аналогично, если я пытаюсь встроить шрифт из своей библиотеки - например, у меня есть новый шрифт в моей библиотеке, который я экспортирую в actionscript с идентификатором привязки year_font и меняю my_fmt.font = my_font и нажимаю Export для actionscript в диалог связей. Затем, когда я нажимаю textField, слово Year исчезает, но textField нельзя редактировать.

Если я просто принять, что OnSetFocus вызывают проблемы и идти с сохранением встроенных шрифтов, которые выглядят гораздо лучше, у меня есть еще Probs -

  1. Если я нажимаю на TextField курсор теперь появляется после слова «Год», как и следовало ожидать, потому что я удалил функцию onSetFocus, которая удаляет слово. Поэтому, если я удаляю «Год», нажимая backspace 4 раза, то по какой-то причине курсор исчезает, и я не могу ввести текст. Обратите внимание, что это происходит не при локальном тестировании, а только при публикации и запуске в браузере.
  2. Однако, если я выделил слово «Год», тогда начните вводить текст. Я могу ввести числа в порядке, и если я нажму кнопку «ОК», слово «год» появится в нужном шрифте. Странно, теперь поведение в номере 1 выше больше не происходит - если я нажму кнопку delete, чтобы удалить год года, курсор останется, и я могу снова ввести его. Номер 1, кажется, только в первый раз.

Любые идеи?

благодаря

ответ

1

Я не могу ответить на ваш полный запрос, но я слишком испытавшие TextField, который убивает себя, когда вы попали забой, и не убивает себя, если вы отметите текст/делать вещи по-разному.

Это должно быть ошибкой, так как мы решили это с помощью измененного целевого игрока с FP8 на FP9. Это было для знаменем, и, естественно, мы производим их с самым низким общим знаменателем, но на этот раз мы дали это в пользу того, что действительно работает! :)

 Смежные вопросы

  • Нет связанных вопросов^_^