0

我需要通过使用/调用相应的图表来获取弹性图表的所有属性。示例 对于弹性面积图,我们有 xField、yField 和 minField。

有没有办法通过任何方法从每个图表中获取这些属性。

4

2 回答 2

0

也许这段代码会有用,是查看ChartBase对象所有信息的示例:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import mx.charts.chartClasses.ChartBase;

            public function init():void{
                getInfo(new ChartBase());   
            }

            private function getInfo(obj:Object):void{
                txt1.text = describeType(obj);
                var myXML:XMLList = new XMLList(describeType(obj));
                var info:String = "";
                for each(var node:XML in myXML.children()){
                    switch(node.name().toString())
                    {
                        case "variable":
                        {
                            info = info + "var - " +  node.@name + "\n";    //properties
                            break;
                        }
                        case "accessor":
                        {
                            info = info + "accessor - " +  node.@name + "\n";   //getter-setter
                            break;
                        }
                        case "method":
                        {
                            info = info + "method - " +  node.@name + "\n"; //methods
                            break;
                        }                               
                    }
                    txt2.text = info;
                }

            }
        ]]>
    </mx:Script>
    <mx:Label text="View Information of 'ChartBase' Object"/>
    <mx:HBox width="100%">
        <mx:HBox width="50%">
            <mx:VBox width="100%" height="100%">
                <mx:Label text="All Object Information"/>
                <mx:TextArea id="txt1" width="800" height="800"/>
            </mx:VBox>
        </mx:HBox>
        <mx:HBox width="50%">
            <mx:VBox width="100%" height="100%">
                <mx:Label text="Properties,Accessor and Methods from this Object"/>
                <mx:TextArea id="txt2" width="800" height="800"/>   
            </mx:VBox>
        </mx:HBox>      
    </mx:HBox>
</mx:Application>

基本上,该方法describeType返回带有对象信息的 XML。

在这里,您可以使用此代码LINK运行 SWF 。

于 2013-08-14T13:36:38.687 回答
0

图表上没有方法可以做到这一点。如果您想找出图表及其系列的属性,则需要通过反射来完成。

为此,您可以在任何对象上使用全局 describeType() 方法。这将返回一个包含对象所有属性的 XML 对象。

在 describeType 之上还有一个 API,可以更轻松地访问和自省对象:AS3Commons Reflect

于 2013-08-14T10:32:24.783 回答