PDA

Просмотр полной версии : Загрузка изображений в swf через проводник


tyrych
08.08.2010, 18:53
Есть такая задача как необходимость загрузки из проводника изображений и ... другого!
Я это видел правда на AS3-хотелось бы на 2 скрипте это пеализовать! Понимаю что возникнут проблемы с перекодировкой получаемого файла (к примеру в JPG), тоже надо! И последний вопрос как сохранить полученое (изображение) на сервере, пусть будет обработчик PHP!
Зарание благодарен!!
P.S. если кому надо нестандартное решение как работать с XML во flash могу подсказать! Просто и удобно!

zurkis
08.08.2010, 19:41
поищи на AS2 нечто работающее через BitmapExporter

или вот тут: http://flash-world.ru/flash_tutorial/51-actionscript_2_jpg_png_bmp_saving.html - все по русски написано

mooncar
08.08.2010, 19:42
Ну есть класс FileReference с набором методов для загрузки файлов на сервер.
При использовании во флешке этого класса пользователь может выбрать в стандартном меню проводника "Открыть" нужный файл и по нажатию кнопки происходит передача файла на сервер принимающему скрипту, например, PHP-скрипту методом POST.
Если это картинка и ее нужно показать во флешке, то тут же вызывается загрузка этого файла с помощью MovieClipLoader.
Или вопрос был о другом?

tyrych
09.08.2010, 00:05
FileReference - имено о нем и разговор! И загрузить MovieClipLoader

zurkis
09.08.2010, 02:20
ну тогда открываем хелп, читаем, и делаем, что не получается, постим сюда и ждем ответа

KirAmp
09.08.2010, 03:27
mooncar
А можно пожалуйста самый элементарный пример? то читать мануалы нет времени, а мне бы тоже пригодилось бы

zurkis
09.08.2010, 03:38
А можно пожалуйста самый элементарный пример? то читать мануалы нет времени, а мне бы тоже пригодилось бы


самый элементарный пример помоему был в хелпе еще в 8-й версии, не поленись и загляни сюда:

http://markshu.ca/imm/flash/tutorial/fileReference.html

KirAmp
09.08.2010, 04:07
import flash.net.FileReference;

var reference:FileReference = new FileReference();

reference.addListener(referenceListener);
referenceListener.onSelect = activateUploadButton;
referenceListener.onProgress = updateProgress;
referenceListener.onComplete = restart;
referenceListener.onHTTPError = handleError;
referenceListener.onIOError = handleError;
referenceListener.onSecurityError = handleError;

function choose():Void
{
reference.browse([{description:"Изображения (*.png; *.jpg; *.bmp)", extension:"*.png; *.jpg; *.bmp"}]);
}
function activateUploadButton(){
trace("qwe");
}
choose();
Выбираю изображение и не работает...
Как мне отследить то что человек выбрал изображение?

mooncar
09.08.2010, 10:22
KirAmp, слушатель отследит. А обработчик onSelect выполнит необходимые действия.
Но вы слушателя забыли создать, а используете.
var referenceListener:Object = new Object();

tyrych
09.08.2010, 20:01
с подгрузкой из проводника разобрался!!!
=============
stop();
import flash.net.FileReference;

var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
allTypes.push(imageTypes);

var textTypes:Object = new Object();
textTypes.description = "Text Files (*.txt, *.rtf)";
textTypes.extension = "*.txt;*.rtf";
allTypes.push(textTypes);

var listener:Object = new Object();

listener.onSelect = function(file:FileReference):Void {
trace("onSelect: " + file.name);
if(!file.upload("http://www.yourdomain.com/yourUploadHandlerScript.cfm")) {
trace("Upload dialog failed to open.");
}
}

listener.onCancel = function(file:FileReference):Void {
trace("onCancel");
}

listener.onOpen = function(file:FileReference):Void {
trace("onOpen: " + file.name);
}

listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}

listener.onComplete = function(file:FileReference):Void {
trace("onComplete: " + file.name);
}

listener.onHTTPError = function(file:FileReference):Void {
trace("onHTTPError: " + file.name);
}

listener.onIOError = function(file:FileReference):Void {
trace("onIOError: " + file.name);
}

listener.onSecurityError = function(file:FileReference, errorString:String):Void {
trace("onSecurityError: " + file.name + " errorString: " + errorString);
}

var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse(allTypes);
==================
теперь бы опубликовать его в окне!!
Подскажите скрипт!

Добавлено через 8 минут
или мне надо его на сервер сперва закинуть, а потом грузить????