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