Flex Chart组件导致设计模式不能正常使用

今天,用Flash Builder 4基于Flex SDK 4新建了一个Chart应用,结果将Chart组件所在MXML文件切换到设计模式时出错:设计模式:布置组件时出错。请选择“设计”>“刷新”以刷新设计模式。

刷新了N次还是出现那个错误。逐个移除组件进行测试,最终是发现罪魁在于Chart组件,这是因为Chart组件自定义了GridLines,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:GridLines xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flash/spark"
    xmlns:mx="library://ns.adobe.com/flash/mx"
    gridDirection="both" horizontalStroke="{scs}" verticalStroke="{scs}">
    <fx:Declarations>
        <s:SolidColorStroke id="scs"
            color="0xCCCCCC"/>
    </fx:Declarations>
</mx:GridLines>

乍看是没有任何问题的,怎么切换到设计模式就出错了呢?我想还是SolidColorStroke的问题,自从Flex 4用SolidColorStroke代替类Stroke类以来,这个类就存在不少Bug,见http://www.riafan.com/flash/flex4-lineseries-two-bugs

不过,如果我们用元素标签而不是属性标签来定义线条样式,就不存在这个Bug。如下代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:GridLines xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flash/spark"
    xmlns:mx="library://ns.adobe.com/flash/mx"
    gridDirection="both">
    <mx:horizontalStroke>
        <s:SolidColorStroke color="0xCCCCCC"/>
    </mx:horizontalStroke>
    <mx:verticalStroke>
        <s:SolidColorStroke color="0xCCCCCC"/>
    </mx:verticalStroke>
</mx:GridLines>

个人觉得属性定义还是方便得多,欣喜的是,Flash Builder Burrito已经修正了这个Bug。

发表评论