Компонент гибкой загрузки файла - проблемы со ссылкой на файл - PullRequest
0 голосов
/ 02 сентября 2010

Следующий код используется в компоненте I, названном FileUpload.mxml, который используется в двух трех различных разделах приложения flex.

private var uploadURL:URLRequest = new URLRequest;
private var file:FileReference = new FileReference;
private var media:MediaFacade;

public function browse():void
{
        var uUrl:String=""; // force
        uploadURL=new URLRequest();

        file=new FileReference();
        configureListeners();

        file.browse(getTypes());
}

private function configureListeners():void
{
    file.addEventListener(Event.CANCEL, cancelHandler);
            ...
    if (!Application.application.hasEventListener("uploadFileEvent")) {
        Application.application.addEventListener("uploadFileEvent", uploadFile);
    }
}

Когда он используется в первом экземпляре, он работает нормально, но когда он используется в разных разделах, он получает следующую ошибку из приведенного ниже кода:

Ошибка # 2037: функции, вызванные в неправильной последовательности, или более ранний вызов был неудачным.

    private function doUploadFile():void
    {
        try
        {
            file.upload(uploadURL);
        }
        catch (e:Error) {
            trace(e.message);
        }
    }

Каждый раз он следует одной и той же последовательности, т.е. file = new FileReference;configureFileListeners (файл);file.browse ();file.upload (uploadURL), но работает только на первом экземпляре создаваемого компонента.

Любые идеи приветствуются.

Заранее спасибо.

Ангус.

Ответы [ 2 ]

1 голос
/ 31 декабря 2013

Я новичок в Flex, но из того, что я прочитал:

Попробуйте вызвать .cancel () перед .browse (), чтобы убедиться, что ни одно событие не конфликтует.

1 голос
/ 02 сентября 2010

browse метод может быть вызван только непосредственно из события «Взаимодействие с пользователем», такого как событие CLICK.Если вы поместите его в функцию или класс, эта ошибка произойдет.

...