Я заметил странное поведение с AS2 и использование шрифтов в textField, который добавляется на сцену с помощью createTextField (). Это для textField, в котором изначально указано Year - и пользователь может ввести год, нажать «ОК», и год будет принят, затем textField вернется к слову «Year». Я хочу, чтобы это всегда был шрифт без засечек, такой как Arial (конечно, это не может быть сложно!)
Вот чего я хочу достичь -
1) Когда пользователь нажимает на textField, слово «Год» очищается, и мигающий курсор указывает на возможность ввода текста.
2) Когда пользователь нажимает кнопку «ОК» (и год представляет собой четырехзначное число), textField возвращается к слову «Год» (в 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, когда я нажимаю textField. Таким образом, встраивание шрифтов, по-видимому, не позволяет установить фокус на textField после срабатывания функции onSetFocus. Однако текст, который я сейчас ввожу, не Arial, когда я нажимаю кнопку «ОК» и слово «год» заменяется, оно пишется шрифтом с засечками, например, Times или что-то еще. Я этого не хочу!
Точно так же, если я пытаюсь встроить шрифт из своей библиотеки - например, у меня есть новый шрифт в моей библиотеке, который я экспортирую в actionscript с идентификатором связи year_font и изменяю my_fmt.font = my_font и нажимаю «Экспорт для actionScript» в связи диалог. Затем, когда я щелкаю текстовое поле, слово «год» исчезает, но текстовое поле редактировать невозможно.
Если я просто признаю, что onSetFocus вызывает проблему, и сохраню встроенные шрифты, что выглядит намного лучше, у меня больше проб -
- Если я щелкну текстовое поле, курсор появится после слова «год», как и следовало ожидать, потому что я удалил функцию onSetFocus, которая удаляет слово. Поэтому, если я удаляю «Год», нажимая клавишу Backspace 4 раза, курсор по какой-то причине исчезает, и я не могу ввести текст. Обратите внимание, что это не происходит при локальном тестировании, а является проблемой только при публикации и запуске в браузере.
- Однако, если я выделю слово «Год», то начну печатать, я смогу набрать цифры в порядке, и если я нажму кнопку «ОК», слово «год» отобразится правильным шрифтом. Странно, что теперь поведение в позиции 1 больше не происходит - если я нажимаю «Удалить», чтобы удалить слово «год», курсор остается, и я могу печатать снова. Кажется, номер 1 появляется только в первый раз.
Есть идеи?
спасибо