The trick is to set the mode of progressbar to manual since you are not automatically listening to any progress of a downloaded data. You want to set a value so progress bar could update itself so manual is the way to go. Moreover, check this out :
<s:Application minHeight="600" minWidth="955" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<fx:Declarations>
<s:ArrayCollection id="arr">
<fx:Object label="Group One" currentValue="20" max="200" min="0"/>
<fx:Object label="Group Two" currentValue="50" max="300" min="0"/>
</s:ArrayCollection>
</fx:Declarations>
<fx:Script>
<![CDATA[
private function updateArr():void {
arr.getItemAt(0).currentValue = ns.value;
}
]]>
</fx:Script>
<s:List dataProvider="{arr}" itemRenderer="ProgressBarWithCurrentValue"/>
<s:NumericStepper id="ns" maximum="200" minimum="0" stepSize="10" value="20" change="updateArr()"/></s:Application>
Here is the itemrenderer code, you'll see the mode as manual :
<s:ItemRenderer autoDrawBackground="true" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
private function updateCurrentValue():void {
pb.setProgress(data.currentValue, data.max);
}
]]>
</fx:Script>
<mx:ProgressBar id="pb" maximum="{data.max}" minimum="{data.min}" mode="manual" updateComplete="updateCurrentValue()"/></s:ItemRenderer>
When you simply set itemrenderer to a progressbar, it automatically tries to find a datasource but in your case you'll be feeding and updating yourself. So, you'll need an itemrenderer where you do some operations maybe.