Ошибка «setProgress not a function» при установке значения прогресса индикатора выполнения - PullRequest
0 голосов
/ 02 марта 2011

Я хочу установить значение индикатора выполнения в аккордеоне, но я сталкиваюсь с ошибкой setProgress не является функцией.Любая идея, что не так со следующим кодом.

Наблюдение: если я перемещаю индикатор выполнения из Аккордеона, то ошибка исчезает, и индикатор выполнения отображается нормально.

Я хочу установить индикатор выполнения в конечном итоге на {repMonitor.currentItem.threatLevel}, но сейчас я просто тестирую гипотетическое значение угрозы, т.е. 60

<mx:Accordion id="monAccordian" includeIn="Monitoring" x="10" y="10" width="554" height="242" change="monAccordianChange()" >       
   <mx:Repeater id="repMonitor" dataProvider="{monitoringArray}">
      <mx:Canvas width="100%" height="100%" label="{repMonitor.currentItem.firstName+' '+ repMonitor.currentItem.lastName}" >
        <mx:Image x="10" y="10" source="{repMonitor.currentItem.imageName}" width="175" height="118"/>
        <s:Label x="200" y="14" text="Threat Level:"/>
          <mx:ProgressBar x="200" y="30" mode="manual" label="" id="bar" width="200" creationComplete="bar.setProgress(60,100);" />
      </mx:Canvas>
   </mx:Repeater>
</mx:Accordion>

1 Ответ

1 голос
/ 02 марта 2011

Это связано с тем, что ваш ProgressBar находится в репитере. Вы не можете ссылаться на повторяющиеся элементы по идентификатору, потому что у вас будет переменное число ProgressBars с идентификатором "bar".

При использовании прослушивателей событий внутри объектов Repeater также есть особые соображения:

Обработчики событий в компонентах повторителя

Когда компонент повторителя занят повторяя, каждый повторяющийся объект, который это создает может связать в этот момент currentItem компонента Repeater свойство, которое меняется как Повторитель компонента повторяется. Ты не можешь дать каждому экземпляру свое событие обработчик, написав что-то вроде нажмите = "йоЗотеЬЫпд ({r.currentItem})" потому что выражения привязки не разрешено в обработчиках событий, и все экземпляры повторяемого компонента должен иметь один и тот же обработчик событий.

Повторные компоненты и повторные Компоненты повторителя имеют метод getRepeaterItem (), который возвращает элемент в свойстве dataProvider который был использован для производства объекта. Когда компонент Repeater заканчивается повторяя, вы можете использовать Метод getRepeaterItem () для определения что должен делать обработчик событий на свойстве currentItem. Для этого Вы передаете event.currentTarget.getRepeaterItem () метод к обработчику событий. Метод getRepeaterItem () принимает необязательный индекс, который указывает, какой Повторите компоненты, которые вы хотите, когда вложенные компоненты повторителя подарок; индекс 0 является самым внешним Компонент повторителя. Если вы этого не сделаете указать аргумент индекса, самый внутренний компонент повторителя подразумеваемый.

Подробнее об этом вы можете прочитать в документации к репитеру .

...