Flex 3.5更新值时未触发HSlider事件侦听器

时间:2010-08-16 21:31:47

标签: flex flash actionscript-3 flexbuilder

我正在编写一个Web应用程序,它将作为我用Java编写的随机数据生成器的配置。我在此应用程序中设置的值将写入xml。 xml数据由名为simulationParams.as的文件更新,该文件被添加到“viewStack”中的每个子项,以便当我更改任何这些值时,simulationConfig文件将自动更新。问题是,当我按下randomizeBtn时,会触发正确的事件并且侦听器会抓取这些事件。当我取消选中随机化按钮时,我的问题就出现了。由于某种原因,事件被触发或者监听器没有监听,因此当我取消选中randomizeBtn时,值将返回到它们在滑块上的最后位置或值。防爆。如果我的初始值为0然后按随机化滑块将转到100.配置文件更新,一切都很好。当我取消选中randomizeBtn时,滑块值返回0但配置文件不是更新。当我按useDefaultBtn选择/未选中时,会发生同样的事情,没有任何内容得到更新。

[被修改]

我已经包含了一个测试应用程序来帮助显示我的问题:
snipplr.com/view/39260/testmxml(运行此)
snipplr.com/view/39259/simulationconfigparamsas
snipplr.com/view/39257/organizationpanelmxml
snipplr.com/view/39258/organizationtypesetting

有问题的功能是:

randomizeBtn_clickHandler(event:MouseEvent):void
useDefaultBtn_clickHandler(event:MouseEvent):void
updateLastSliderPosition(currentChild:OrganizatyionTypeSettings):void
useSliderPosition(currentChild:OrganizatyionTypeSettings):void
creationCompleteHandler(event:FlexEvent):void
initSetting(setting:OrganizatyionTypeSettings):void
setMinuteCreationDelay(event:SliderEvent):void
setDelayVariance(event:SliderEvent)

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。问题是我有SliderEvent的事件监听器没有监听我按下随机化或默认按钮FlexEvent.VALUE_COMMMIT时调度的其他类型的事件;修复此操作会向我的HSlider添加第二个侦听器,然后将setSliderValue方法从protected function mockSetFn(event:SliderEvent)更改为protected function mockSetFn(event:Event)以处理所有事件。轻松的事情让我感到震惊。