“setProgress 不是函数”设置进度条的进度值时出错

发布于 2024-10-19 23:28:47 字数 938 浏览 5 评论 0原文

我想在手风琴中设置进度条的值,但遇到“setProgress 不是函数”错误。知道以下代码有什么问题吗?

观察: 如果我将进度条移出 Accordian,则错误就会消失并且进度条显示正常。

我想最终将进度条设置为 {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>

I want to set value of a progress bar in an accordian but I am encountering 'setProgress is not a function' error. Any idea what's wrong with following code.

Observation:
If I move the progress bar out of the Accordian then the error goes away and the progress bar appears fine.

I want to set the progress bar eventually to {repMonitor.currentItem.threatLevel} but for now I am just testing with hypothetical threat value i.e 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2024-10-26 23:28:47

这是因为您的 ProgressBar 位于中继器中。您不能通过 id 引用重复的项目,因为您将拥有可变数量的 id 为“bar”的 ProgressBar。

在 Repeater 对象内部使用事件侦听器时还需要​​特别注意:

Repeater 组件中的事件处理程序

当中继器组件繁忙时
重复,每个重复的对象
它创造了可以在那一刻绑定到
Repeater 组件的 currentItem
属性,随着
中继器组件重复。你不能
为每个实例提供自己的事件
处理程序通过写类似的东西
单击=“doSomething({r.currentItem})”
因为绑定表达式不是
允许在事件处理程序中使用,并且所有
重复组件的实例
必须共享相同的事件处理程序。

重复组件和重复
中继器组件有一个
返回的 getRepeaterItem() 方法
dataProvider 属性中的项目
用于生产该物体。
当 Repeater 组件完成时
重复,您可以使用
getRepeaterItem() 方法来确定
事件处理程序应该做什么
在 currentItem 属性上。为此,
你通过了
event.currentTarget.getRepeaterItem()
方法到事件处理程序。这
getRepeaterItem() 方法需要一个
可选索引指定哪个
您需要的中继器组件
嵌套的 Repeater 组件是
展示; 0 索引是最外面的
中继器组件。如果你不这样做
指定索引参数,
最里面的中继器组件是
暗示。

您可以在中继器文档中阅读更多相关信息

This stems from the fact that your ProgressBar is in a repeater. You cannot reference the repeated items by id because you would have a variable number of ProgressBars with id "bar".

There are also special considerations when using event listeners inside of Repeater objects:

Event handlers in Repeater components

When a Repeater component is busy
repeating, each repeated object that
it creates can bind at that moment to
the Repeater component's currentItem
property, which is changing as the
Repeater component repeats. You cannot
give each instance its own event
handler by writing something like
click="doSomething({r.currentItem})"
because binding expressions are not
allowed in event handlers, and all
instances of the repeated component
must share the same event handler.

Repeated components and repeated
Repeater components have a
getRepeaterItem() method that returns
the item in the dataProvider property
that was used to produce the object.
When the Repeater component finishes
repeating, you can use the
getRepeaterItem() method to determine
what the event handler should do based
on the currentItem property. To do so,
you pass the
event.currentTarget.getRepeaterItem()
method to the event handler. The
getRepeaterItem() method takes an
optional index that specifies which
Repeater components you want when
nested Repeater components are
present; the 0 index is the outermost
Repeater component. If you do not
specify the index argument, the
innermost Repeater component is
implied.

You can read more about this in the Repeater docs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文