Отображение индикатора выполнения загрузки файла

Мне нужно создать приложение, в котором я могу добавлять файлы для загрузки. Когда я добавляю элементы для загрузки, вместе с каждым добавленным элементом должна отображаться полоса выполнения. И когда я нажимаю кнопку для загрузки файла, ход загрузки каждого файла должен отражаться на индикаторе выполнения. Прогресс должен использовать такую ​​функцию, как

.....
addEventListener(ProgressEvent.Progress, uploadProgressHandler);

private function uploadProgressHandler(event:ProgressEvent):void
{
    var numPerc:Number = Math.round((Number(event.bytesLoaded) / Number(event.bytesTotal)) * 100);

    //this.progBar.validateNow();

    .....
}  

Может ли кто-нибудь помочь мне?


person Roshan    schedule 16.02.2010    source источник


Ответы (3)



У Flex есть класс ProgressBar, вы это проверили? еще нет?

person Amarghosh    schedule 16.02.2010
comment
Ага, я использовал то же самое. Мое требование - отображать индикатор выполнения для каждого элемента, добавленного в список загрузки, добавляется индикатор выполнения и показывать прогресс на каждом индикаторе выполнения. - person Roshan; 16.02.2010

Вот два отличных примера загрузчиков файлов Flex (с использованием HTTP):

http://blog.vixiom.com/uploads/merb_air_upload.png

Чтобы два приведенных выше примера работали вместе для достижения желаемого результата (несколько загрузчиков файлов, один ProgressBar для каждого загрузчика во Flex), все, что вам нужно сделать, это:

  1. Загрузите проект PHP для загрузки файлов Flex.
  2. Загрузите Merb AIR Uploader и скопируйте / вставьте "UploadProgressComponent.mxml" где-нибудь в Проект PHP (пока скопируйте в src/UploadProgressComponent.mxml).
  3. Замените DataGrid на List и Custom ItemRenderer в FileUpload.mxml в проекте PHP загрузчика файлов Flex.

Замените это:

<mx:DataGrid id="listFiles" left="0" top="0" bottom="0" right="0"  
 allowMultipleSelection="true" verticalScrollPolicy="on"
 draggableColumns="false" resizableColumns="false" sortableColumns="false">
    <mx:columns>
        <mx:DataGridColumn headerText="File" dataField="name" wordWrap="true"/>
        <mx:DataGridColumn headerText="Size" dataField="size" width="75" textAlign="right"/>
    </mx:columns>
</mx:DataGrid>  

с этим:

<mx:List id="listFiles" left="0" top="0" bottom="0" right="0"
 allowMultipleSelection="true" verticalScrollPolicy="on"
 itemRenderer="UploadProgressComponent"/>  

Результат: средство загрузки нескольких файлов в Flex с настраиваемым ItemRenderer, имеющим ProgressBar для каждой FileReference. Загружает в сценарий PHP, который можно заменить на что угодно.

Оттуда должно быть очень легко настроить. Дай мне знать, если это сработает, Лэнс

person Lance Pollard    schedule 16.02.2010
comment
Я прошел через это, но мои требования сильно отличаются от этого. Мне нужна полоса прогресса для каждого файла, добавленного в список, и прогресс отображается на соответствующей шкале прогресса для каждой загрузки файла, тогда как в ссылке, которую вы мне предоставили, прогресс отображается на той же полосе выполнения. - person Roshan; 16.02.2010
comment
обновленный связанный пример показывает, как создать индикатор выполнения для каждого файла, который должен это делать! - person Lance Pollard; 16.02.2010
comment
Спасибо за поддержку. Но я использую сценарий действий Flex 2 и получаю сообщение об ошибке из-за WindowedApplication в сценарии App.as. Итак, моя проблема все еще не решена. - person Roshan; 16.02.2010
comment
попробуйте вышеуказанное решение. вы можете столкнуться с ошибками, потому что я еще не построил все, но он работает со своей стороны! попробуйте сделать это, отлаживайте по мере необходимости и дайте мне знать, решило ли оно вашу проблему (или привело вас на правильный путь, что даже лучше). ваше здоровье - person Lance Pollard; 16.02.2010
comment
Спасибо за вашу помощь. Но первое решение, то есть ссылка weblog.cahlan.com/files/FileUpload/FileUploadApp.html дал подсказку для достижения моей задачи по созданию приложения для загрузки файлов с индикатором выполнения. Ваше здоровье. - person Roshan; 18.02.2010