0

次の問題があります:私のタスクは、Flex 4.5で2つのグラフのデータチップのスタイルを設定することです。両方のグラフは、<Group>に追加される2つの異なるベースのコンポーネントに存在します。<Application>

徹底的な調査の後、私がやろうとしたことは次のとおりです。最初にcssの降順セレクターを適用します。

#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

したがって、Id = containerを持ち、その中にid = "chart1"のグラフがあるコンポーネントは、Adobeのドキュメントでそうすべきだと言われているにもかかわらず、機能しません。私がそれを解決することになっていると信じていた別のアプローチは、このCSSスタイルを置くことでした

chartClasses|DataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

これらの各コンポーネントの内部では、チャートDataTipクラスセレクターはレベルでのみ機能し<Application>ます(そして、アプリケーションで見つかったすべてのチャートデータチップに同じスタイルを適用します。したがって、チャートを含む2つのコンポーネントのそれぞれに配置しても効果はありません。

次に、チャートのdataTipRendererスタイルにフィードされるクラスを作成しました。次に、MyCustomDataTipRendererというクラス内で、クラスセレクターを設定しました。

.dataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

はい、動作しますが、ホスティングチャートに基づいてカスタムデータチップレンダラーにさまざまなスタイルを設定できるようにしたいとします。どうすればよいですか?Flex SDKはdatatipRendererをまったく公開していないようです。したがって、カスタムdatatipレンダラーを次のように効果的に設定した場合:

columnchart1.setStyle("dataTipRenderer",CustomDataTip); 

次に、CustomDataTipクラスのインスタンスにアクセスできるようにしたいと思いますが、アクセスできません。現在、チャートごとに個別のカスタムデータチップレンダラークラスを作成することしかできません。スタイリングしたいチャートは2、3しかありませんが、それらがたくさんある場合はどうすればよいでしょうか。

4

1 に答える 1

1

cssファイルの先頭に以下を追加してみてください(ファイルの名前がchartStyles.cssであると仮定します)

@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "http://www.adobe.com/2006/mxml";

mx|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

s|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

cssスタイルがメインアプリケーションのmxmlのスタイルタグに配置されている場合、最初に@namespaceタグは必要ありません。mx|を直接追加できます。およびs| あなたのスタイルの接頭辞として。

于 2011-11-02T07:57:44.443 に答える