打印

[FLEX] 可恶的<mx:SeriesInterpolate id="interpolate"/>

本主题由 HBrO 于 2008-7-20 20:38 解除精华
这个标签很可恶!~~~
作用是给柱图的动作加上效果,如:
<mx:SeriesInterpolate id="interpolate" elementOffset="10"/>
....
<mx:BarSeries dataProvider="{barAC1}" xField="veryLow" yField="affairType" showDataEffect="{interpolate}" >

..
这样柱图数据更新的时候,就可以有动画效果,但要慎用!~~

因为很可能在开发的时候,测试运行得很正常,但放到WEB 应用中的时候,在浏览器实时访问.MXML文件的时候,它就会不能被实时地初始化,
于是,当你的柱图要重绘的时候,就会发现这个效果没有实例存在,于是抛出个下面的异常。

TypeError: Error #1009: 无法访问空对象引用的属性或方法。
       at mx.charts.chartClasses::Series/mx.charts.chartClasses:Series::stripNaNs()
       at mx.charts.series::ColumnSeries/mx.charts.series:ColumnSeries::updateFilter()
       at mx.charts.chartClasses::Series/mx.charts.chartClasses:Series::validateTransform()
       at mx.charts.chartClasses::Series/getRenderDataForTransition()
       at mx.charts.effects.effectClasses::SeriesInterpolateInstance/play()
       at mx.effects::EffectInstance/startEffect()
       at mx.effects.effectClasses::ParallelInstance/play()
       at mx.charts.chartClasses::ChartBase/::advanceEffectState()
       at mx.charts.chartClasses::ChartBase/mx.charts.chartClasses:ChartBase::updateDisplayList()
       at mx.charts.chartClasses::CartesianChart/mx.charts.chartClasses:CartesianChart::updateDisplayList()
       at mx.core::UIComponent/validateDisplayList()
       at mx.managers::LayoutManager/::validateDisplayList()
       at mx.managers::LayoutManager/::doPhasedInstantiation()
       at Function/http://adobe.com/AS3/2006/builtin::apply()
       at mx.core::UIComponent/::callLaterDispatcher2()
       at mx.core::UIComponent/::callLaterDispatcher()


以上这个原因是我猜测的,我希望有高人能更清楚地解释一下这个现象!~~

以下有测试代码,放到一个有FLEX的应用中,直接访问.MXML就可以看到错误,但你放到FLEX BUILDER中运行,就会很正常!~~
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
经典
确实 有 经典!

主页:
flash59.it50.net
FLASH论坛:
在首页里。