Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Мультизагрузчик изображений. (http://www.flasher.ru/forum/showthread.php?t=131206)

true11 15.10.2009 02:59

Мультизагрузчик изображений.
 
Долго искал хотя бы какие-нить туторы, подсказки или уже готовые бесплатные решения и ничего не нашел толкового по этой теме. Посему более-менее освоив as 2.0 решил попробовать сделать это чудо сам. Конечно возникло несколько вопросов, т.к. тут нужно очень серьезно поработать с графикой. Все свои заметки и наблюдения буду выкладывать сюда, и надеюсь с вашей помощью произведу на свет второй свой урок по as2. Все исходники обязуюсь выкладывать ниже :)

Сразу озвучу несколько вопросов, для которых я либо не знаю ответа либо сомневаюсь.
а) Можно ли сделать аналог explorer-a?(дерево папок с возможностью просматривать фотографии на компьютере пользователя в виде миниатюр)
б) Можно ли "сжимать" фотографии на компьютере пользователя и потом результат жизнедеятельности скрипта слать на сервер? (чтото типа метода copyPixels) Либо мы просто работаем с мувиком, куда загружена фотография и передаем php скрипту параметры, к примеру, нужно повернуть изображение-оригинал на 180 градусов, ужать по меньшей стороне до 200 px и обрезать с большей стороны кусок фотки, который больше 200px.

Также озадачил способ отправки фотографий на сервер. Чем мультизагрузчик должен отличаться от обычного на php страничке? Обычна на хостингах стоит ограничение 5 мб на закачиваемый файл(которое можно увеличить впоследствии до 100 мб). Т.е для фотографа уже не совсем удобно закачивать по 1му файлу либо много но заранее сжимая и обрабатывая фотографии. Зачем? Затем, что фотосессия сама по себе весит далеко не гб, а то и больше. А все фотографии обрабатывать и ужимать ручками дополнительно для галереи довольно трудозатратно. Вообщем ответ на данный вопрос - посылать фотографии по одной шт на сервер, ждать ответа и затем загружать следующую. Порыскав тут же на форуме, нашел урок по аплоаду файлов на сайт по 1 шт с помощью FileReference. Великолепно, ведь к листнеру FileReference можно прикрутить событие onComplete. Значит, теоритически это возможно.

Мм вроде все. на этой ноте плетусь добивать исходник(если не выложу сеня, то завтра а то поздно уже.) Правда, думается мне я как обычно с первого раза что-нибудь да пропустил. Если я где-то пролетаю с теорией, подскажите пож-та. Хочется сделать чтонить оч полезное для общества, ну и качеством на уровне)

mooncar 15.10.2009 03:23

Ты смотрел класс FileReferenceList ?

true11 15.10.2009 03:32

Только что посмотрел, спасибо. Впринципе более-менее понятно. Но все-таки хотел свой интерфейс сделать. Два блока - один отображает папку пользователя(не метод browse) другой - папку на сервере.
Человек ручками перетаскивает один или несколько клипов, и жмет кнопку аплоада.

mooncar 15.10.2009 03:36

Вопрос - как ты будешь реализовывать "папку пользователя" чисто средствами флеш? Флеш ведь не умеет работать с файловой системой, хоть NTFS, хоть какой. Как, например, флеш "родит" хотя бы простой список файлов директории, не говоря уже об их атрибутах?
Перебором всевозможных имен файлов в мегацикле, до какого-то знака в имени и с последующей попыткой их открыть?

На стороне сервера - это легко, с помощью соответствующих функций php, а тут как поступить?

true11 15.10.2009 03:40

ну да, учитывая то, что даже работая standalone не может свободно в файлы, тут все безнадежно, как я впринципе и думал.

А что вы думаете по поводу картинок? можно ли сжать/обработать изображение на flash-клиенте и потом уже посылать обработанное? (Если честно, никогда серьезно не вникал в BitmapData, сейчас вот только начинаю))

mooncar 15.10.2009 03:47

Сжать-то можно. (С помощью BitmapData как-то перерисовать в худшем качестве или уменьшить геометрический размер).
Опять таки что делать с этим дальше? Обычно в процессе выполнения задач программы создают некий временный файл, с которым работают - пишут туда обновленные данные, и юзер или приложение дальше как-то тем же временным или уже готовым файлом распоряжается. А у нас опять все упирается в то, что флеш не умеет работать с ФС, выводить данные файл, то есть сохранять его.
То есть перед отправкой на сервер в каком виде ты предполагаешь хранить данные? Ведь флеш может использовать для аплоада только FileReference, а этому классу нужно указывать файл в окне обзора.
Я не вижу возможностей обойтись чистым флешевским клиентом - нужна надстройка типа Zinc или еще что. Мне подобные еще не приходилось использовать.

true11 15.10.2009 03:53

В этом то и вопрос. Создать объект BitmapData можно. Но как его послать - это уже проблема. Вообщем тогда пока остановлюсь на такой схеме:
1. Человек выбирает файлы стандартным browse- интерфейсом, они у него появляются в рабочем поле флешки, в таблице из двух столбцов. В первом разделе можно задавать обрезание по px(или %), поворачивать либо удалять из списка оригиналы, второй столбец будет идентичен первому, за исключением что там будут выставляться настройки для превью-изображений.

2. После того, как человек все выбрал/настроил, мы посылаем поочереди файлы на сервер, где они поочередно загружаются и обрабатываются в зависимости от полученных параметров от флешки.

mooncar 15.10.2009 03:56

Не стоит, ИМХО, стремиться сделать все на флеше. Есть под конкретные задачи заточенные орудия. Флеш более всего - инструмент визуализации данных - это может быть мультик, или калькулятор-конструктор дома с возможностью раскрашивания интерьеров, или каталог товаров, или презентация.
А загрузку файлов все-таки лучше писать с использованием других технологий.

Добавлено через 2 минуты
Цитата:

Сообщение от true11 (Сообщение 857954)
загружаются и обрабатываются в зависимости от полученных параметров от флешки.

То есть загружаются "as is", во все свои мегабайты, а там уже переделываются?

Еще вопрос - искал материалы только по русскоязычным ресурсам?

true11 15.10.2009 04:09

По большей части искал среди русскоязычных.
Ну если мы не можем обработать файл с помощью flash, то придется загружить их "as is". Хотя, конечно, это довольно ужасно :(

В любом случае видимо тут придется применять какое-то стороннее решение для пре-обработки файлов перед загрузкой их на сервер.

Flamingo08 09.02.2010 17:13

Так к чему пришли? Получилось?


Часовой пояс GMT +4, время: 07:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.