Почему TextInput обновляется после второго нажатия кнопки fileReferencer.browse? - PullRequest
0 голосов
/ 20 июня 2011

В Flex 4 я пытаюсь заставить простую кнопку обзора обновить текстовое поле объекта TextInput именем файла, которое получает кнопка обзора. Это не должен быть полный путь, все, что я хочу, - это имя файла, которое нужно отобразить. Он появляется только после повторного нажатия кнопки обзора, а не после первого выбора файла. Вот мой код:

import flash.net.FileReference;

        private var fileReferencer:FileReference = new FileReference();
        private var excelFilter:FileFilter = new FileFilter("*.xlsx", "*.xlsx;*.xls;");
        protected var fileName:String = new String("");

        protected function BrowseButton_clickHandler(event:MouseEvent):void
        {
            fileReferencer.browse([excelFilter]);
            fileName = fileReferencer.name;
            fileInputAddress.text = fileName;
        }

Итак, напомнить, что имя файла отображается только в моем поле TextInput при повторном нажатии кнопки обзора.

Что я делаю не так?

1 Ответ

1 голос
/ 20 июня 2011

Flash Player полностью асинхронный. Таким образом, вы не можете получить имя файла сразу после вызова fileReferencer.browse(). Вот почему у вас есть имя из прошлого звонка. Чтобы исправить свой код, вы должны подписаться на события select и cancel и изменять текст после события select (см. документацию ).

...