2011-07-01 15 views
5

基本的には、どのユーザーがビュー/ダッシュボードのコンポーネントやプロパティを追加/編集できるのかをFlexでXMLDesignerのようなものを作成したいと考えています。 私はビュー構造体をxmlファイルに格納しています。私はそのファイルを実行時と表示時に解析しました。 (プロパティとサブオブジェクトを持つ)オブジェクトをxmlノード(属性と要素を持つ)に変換し、そのxmlを既存のxmlファイルに追加します。次回は、XMLファイルを解析したときに、そのビュー/ダッシュボードに新しいコンポーネントが追加されます。事前にオブジェクトからxmlを作成

<view id="productView" label="Products"> 
<panel id="chartPanel" type="CHART" ChartType="Pie2D" title="Productwise Sales" x="215" y="80" width="425" height="240" showValues="0" > 
    </panel> 
</view> 

ありがとう:例えば、XMLファイル内のコンポーネントのオブジェクト構造のため

答えて

7

XML(de)シリアライズライブラリを使用します。

そこには多くのものがありますが、私が使用したものと非常に安定しているものはFlexxBです。それは機能の過多を持っており、私はそれによって誓う!

Flexxbは注釈ベースであり、いったんハングアップすると使いやすいです。

ここには、メインのWebサイトからコピーされたサンプルがあります。

 [XmlClass(alias="MOck2Replacement", idField="id")] 
     public class Mock3 
     { 
       [XmlAttribute] 
       public var id : Number = 3; 
       [XmlAttribute] 
       public var attribute : Boolean; 
       [XmlElement(alias="objectVersion")] 
       public var version : Number; 

       public function Mock3() 
       { 
         super(); 
       } 
     } 

各変数を注釈で飾り、どのような種類のXMLであるかを指定します。

そして、あなたがオブジェクト

var target : Mock3 = new Mock3(); 
target.attribute = true; 
target.id = 5; 
target.version = 33; 

を作成し、

FlexXBEngine.instance.serialize(target)

そして結果は

<MOck2Replacement attribute="true" id="5"> 
    <objectVersion> 
    33 
    </objectVersion> 
</MOck2Replacement> 

だろうし、約他AWESOME事はつまりあなたのドンである操作を行いますそれを飾るオブジェクトのソースを持っている必要はありません。

これを処理するAPIがあります。このAPを使用して、私はSolidColorLinearGradientを正常にde serializeしました。私はそれを飾るソースを持っていませんでした。

General DescriptionSamplesをチェックアウトします。そしてそれはone SWC installです。

+0

非常に興味深い図書館 – maxmc

+0

こんにちはRanhiru、リンクありがとう、私は必要とほぼ同じです。まず、各コンポーネントのクラスを定義し、それらの属性と要素を定義する必要があります。それは?たとえば、新しい属性をコンポーネントに追加する場合はどうでしょうか? この場合、まずMock3クラスのfontSize属性を定義する必要があります。私たちはflexXBを使ってこのことをすることができますか?どのように新しい属性/要素を実行時にMock3クラスに追加できますか? – Gannesh

+1

はい。それはあなたがすべての属性を知っているときの簡単な方法です。または、**注釈API **を使用して、注釈を実行時に登録することができます。 http://code.google.com/p/flexxb/wiki/Samples2x –

0

私は仕事のためにasbeangenを使用します。あなたは、あなたのXMLをロードして、あなたがモデルを変更してtoXMLを呼び出す値

  • で生成されたモデルを埋めるActionScriptコードでDTD
  • からActionScriptのモデルクラスを生成するDTD
  • を定義

    1. ()はそのルートにあります。これは、modyfied値を持つXMLを提供します。

    ここでは、より精巧なquickstartです。

  • +0

    それは複雑に見えます! – Gannesh