Показать сообщение отдельно
Старый 11.12.2009, 15:26
djtheme вне форума Посмотреть профиль Отправить личное сообщение для djtheme Найти все сообщения от djtheme
  № 1  
djtheme

Регистрация: Dec 2009
Сообщений: 11
Question Проблема с load() в flash.net.FileReference [flash.net.FileReference.load()]

Здравствуйте уважаемые форумчане.

Програмлю в Flash ActionScript CS4.
Тестю в браузере (это ВЕБ направленая флеха) Google Chrome, Mozilla FireFox

Столкнулся с проблемой и даже в голову не приходит в чем причина.

Что я имею:

1.Имею готовую библиотеку, которая состоит из FLA файла в котором прорисовываетца кнопка.
2.По нажатию этой кнопки запускаем FileReferenceList.browse
3.После того как отработал browse и юзер выбрал файлы с массива файлов создаетца новый список и по нажатию другой кнопки они методом
4.FileReference.upload грузяца на сервер.

Что я хочу получить
в моем случае мои файлы всегда картинки
a)я хочу перехватить загрузку файлов на сервер и перед загрузкой каждого файла зделать следуеще:
b)загрузить картинку методом FileReference.load отдать дату на Bitmap и проресайзить
c)а после с помощью urlLoader - а загрузить на сервер. И так каждую картинку.

Тогда у меня начались проблемы:
ReferenceError: Error #1069: Не удалось найти свойство load в flash.net.FileReference; отсутствует значение по умолчанию.
..............
at SWFUpload/Select_Handler()
at SWFUpload/Select_Many_Handler()


в связи с этим я решил перекинуть FileReference.load в пункт 3.
тоесть сразу после отработки FileReferenceList.browse я пытаюсь загрузить файл во флешку.
Но ошибка осталась прежней - поменялось только место эксепшена.

У меня сложилось впечатление, что я просто не подключил какую то библиотеку.

напомню:
Програмлю в Flash ActionScript CS4.
Тестю в браузере (это ВЕБ направленая флеха) Google Chrome, Mozilla FireFox

Буду очень благодарен за хоть какие то советы....
Если что то надо делать неочевидное - могу заплатить неболльшое вознаграждение за практическую помощь.

Заранее Всем Спасибо!

самые важные части кода (остальное здеся: http://*****************/files/3ann5ho3x):

Код AS3:
package 
{
    import flash.display.*;
    import flash.events.*;
    import flash.external.*;
    import flash.net.*;
    import flash.system.*;
    import flash.text.*;
    import flash.utils.*;
 
    public class SWFUpload extends flash.display.Sprite
    {
 
      public function SWFUpload()
        {
 
 
	    ................................
 
            fileBrowserMany = new flash.net.FileReferenceList();
	    image = new flash.display.Bitmap();
            file_queue = new Array();
            file_index = new Array();
            valid_file_extensions = new Array();
            httpSuccess = [];
            super();
            if (!flash.net.FileReferenceList || !flash.net.FileReference || !flash.net.URLRequest || !flash.external.ExternalInterface || !flash.external.ExternalInterface.available || !flash.events.DataEvent.UPLOAD_COMPLETE_DATA)
            {
                return;
            }
 
	    ................................
 
            this.fileBrowserMany.addEventListener(flash.events.Event.SELECT, this.Select_Many_Handler);
 
	    ................................
 
	     this.stage.addEventListener(flash.events.MouseEvent.CLICK, function (arg1:flash.events.MouseEvent):void
            {
                self.ButtonClickHandler(arg1);
                return;
            })
 
	    ................................
 
            return;
        }
 
	 ................................
 
	 private function ButtonClickHandler(arg1:flash.events.MouseEvent):void
        {
            if (!this.buttonStateDisabled)
            {
                if (this.buttonAction !== this.BUTTON_ACTION_SELECT_FILE)
                {
                    if (this.buttonAction !== this.BUTTON_ACTION_START_UPLOAD)
                    {
                        this.SelectFiles();
                    }
                    else 
                    {
                        this.StartUpload();
                    }
                }
                else 
                {
                    this.SelectFile();
                }
            }
            return;
        }
 
    ................................
 
	private function SelectFiles():void
        {
            var allowed_file_types:String;
            var allowed_file_types_description:String;
 
            var loc1:*;
            allowed_file_types = "*.*";
            allowed_file_types_description = "All Files";
            if (this.fileTypes.length > 0)
            {
                allowed_file_types = this.fileTypes;
            }
            if (this.fileTypesDescription.length > 0)
            {
                allowed_file_types_description = this.fileTypesDescription;
            }
            this.Debug("Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: " + allowed_file_types);
            ExternalCall.Simple(this.fileDialogStart_Callback);
            try
            {
                this.fileBrowserMany.browse([new flash.net.FileFilter(allowed_file_types_description, allowed_file_types)]);
            }
            catch (ex:Error)
            {
                this.Debug("Exception: " + undefined.toString());
            }
            return;
        }
 
    ................................
 
	 private function Select_Many_Handler(arg1:flash.events.Event):void
        {
            this.Select_Handler(this.fileBrowserMany.fileList);
            return;
        }
 
    ................................
	private function Select_Handler(arg1:Array):void
        {
             ................................
 
            var loc4:*;
            loc4 = NaN;
 
             ................................
 
                loc4 = 0;
                while (loc4 < arg1.length) 
                {
		    arg1[loc4].load(); //<--------------- ЗДЕСЬ ОШИБКА!!!!!
                    loc5 = new FileItem(arg1[loc4], this.movieName, this.file_index.length);
                     ................................
		    loc4 = (loc4 + 1);
                }
 
		  ................................
 
 
            return;
        }
    ................................
 
 
	private var _loader	: flash.display.Loader;
 
        private var file_index:Array;
 
        private var fileTypes:String;
 
        private var restoreExtIntTimer:flash.utils.Timer;
 
        private var valid_file_extensions:Array;
 
        private var fileBrowserMany:flash.net.FileReferenceList;
 
	private var image:flash.display.Bitmap;
 
        private var file_queue:Array;
 
        private var current_file_item:FileItem=null;
 
        private var fileBrowserOne:flash.net.FileReference=null;
 
        private var fileTypesDescription:String;
 
        private var uploadURL:String;
 
        private var movieName:String;
 
	private var successful_uploads:Number=0;
 
        private var _fileRef:flash.net.FileReference;
    }
}