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 に答える