Диалог сохранения триггера для статического файла - Flash

Как вызвать диалоговое окно сохранения статического файла во Flash? Рассматриваемый файл может быть локальным или удаленным, если это проще. В этом случае файл представляет собой статическое изображение.

Я новичок в AS (и SO), но меня удивляет, насколько разнообразны и запутаны решения проблемы, которая изначально кажется очень простой.

У меня был успех с JPEGEncoder (вместе с ByteArray, BitmapData и т. Д.), Но он очень медленный и, очевидно, не зависит от типа файла.

Я использую Flash Pro CS5, а не Flex или AIR.


person Bede Constantinides    schedule 20.04.2011    source источник


Ответы (3)


Вы можете сохранить файл через Flash, используя класс FileReference: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html

Что касается кодирования, JPEGEncoder может быть довольно медленным из-за настройки качества. Установка на 100% должна ускорить его. PNGEncoder быстрее, или используйте решение на основе алхимии, предложенное Eugeny89

person divillysausages    schedule 20.04.2011

Вы можете взглянуть на следующее: http://ask.amoeba.co.in/save-images-from-flash-actionsctipt-3-filereference-save-jpgencoder/

person michael    schedule 20.04.2011
comment
так что скачать файл можно без каких-либо взломов с сервером! Это классно! - person Eugeny89; 20.04.2011
comment
Да, если версия флеш-плеера 10 или выше. - person michael; 20.04.2011
comment
Спасибо за ответ, но я пробовал, и это неприемлемо медленно даже в системе i7 для рассматриваемых изображений. Алхимия достаточно быстрая, но я не уверен во Flash, и я еще не нашел хорошего руководства по его использованию. - person Bede Constantinides; 20.04.2011
comment
@bedeabc, вам следует использовать алхимию, если вы хотите сохранить изображение намного быстрее. URL-адрес, о котором я упоминал выше, - это то, как сохранить файл локально с помощью флэш-памяти. Вы можете комбинировать их по своему усмотрению. - person michael; 20.04.2011

Как вызвать диалог сохранения статического файла во Flash?

Если я правильно понял ваш вопрос, ответ заключается в том, что вы не можете прикоснуться к чему-либо на своем компьютере во флэш-памяти.

У меня был успех с JPEGEncoder (вместе с ByteArray, BitmapData и т. Д.), Но он очень медленный.

Я спросил об этом как самый простой способ получить jpg из bitmapData

Адам Смит посоветовал использовать более быстрое решение на основе алхимии вместо JPEGEncoder: http://www.websector.de/blog/2009/06/21/speed-up-jpeg-encoding-using-alchemy/

person Eugeny89    schedule 20.04.2011
comment
Спасибо, Евгений. Я читал об алхимии, но предполагал, что должно быть более разумное решение. Разве в этом случае нельзя разрешить пользователю сохранять изображение локально без повторной обработки всего изображения? - person Bede Constantinides; 20.04.2011
comment
@bedeabc, Алхимический раствор - не единственная причина, но я считаю, что он самый быстрый. - person Eugeny89; 20.04.2011
comment
@bedeabc: Нет, вы не можете напрямую сохранить изображение из флеш-памяти. Однако есть небольшой взлом. Но для этого вам понадобится сервер. Опубликуйте содержимое файла, который вы собираетесь сохранить, на этот сервер, например к какому-нибудь PHP-скрипту. В этом сценарии поместите заголовки загрузки, а затем распечатайте содержимое файла. Он будет действовать так, как если бы файл был загружен с этого сервера. - person Eugeny89; 20.04.2011
comment
Верно, поэтому пользователь не может сохранить изображение без его повторной обработки. Спасибо за это. Я думаю, что лучшим решением в моем случае на самом деле является взлом сервера PHP или Alchemy, но я еще не нашел хорошего учебника по Alchemy, который мне нужен из-за отсутствия у меня опыта AS. последняя. instinct.se/graphics-and-effects/ у меня не работает - много ошибок компиляции. - person Bede Constantinides; 20.04.2011
comment
@bedeabc: вот учебное пособие по веб-сектору .de / blog / 2009/06/21 / - person Eugeny89; 20.04.2011