Я пытаюсь получить приложение для загрузки нескольких сгенерированных на стороне клиента изображений (не файлов, поэтому я не могу использовать FileReference), отображая ход загрузки. Это оказалось намного сложнее, чем должно быть. Я использую библиотеку задач Cairngorm для выполнения следующих действий с образом, сгенерированным на клиенте:
- Создание объекта BitmapData для рисования содержимого области этапа
- Асинхронно кодируйте изображение в формате JPEG, чтобы отобразить индикатор выполнения (см. http://dgrigg.com/blog/2009/03/05/as3-jpegencoder-and-big-images/)
- Загрузить изображение асинхронно (чанк, см. http://soenkerohde.com/2010/01/chunk-file-upload/), чтобы показать прогресс
Когда пользователь нажимает кнопку, запускается SequenceTask, кодировка работает как чудо, но когда происходит загрузка, она вспыхивает с ошибкой:
SecurityError: Ошибка # 2176: некоторые действия, например те, которые отображают всплывающее окно, могут быть вызваны только при взаимодействии с пользователем, например, щелчком мыши или нажатием кнопки.
Я полагаю, что это происходит, потому что вы не можете инициировать действие URLLoader.load без вмешательства пользователя. Хотя пользователь нажимает на кнопку , я думаю, что из-за того, что все происходит асинхронно, это событие больше не рассматривается как источник.
Есть ли способ сообщить URLLoader, что это результат щелчка мышью? Это будет необходимо для загрузки фрагмента, чтобы работать, потому что все последующие фрагменты также будут инициировать новый URLLoader, так что я не уверен на 100%, что блокатор загрузки из ссылки действительно работает. Я мог бы сначала попытаться запустить только их простой код.
Спасибо за любые идеи.