2011-07-01 74 views
5

Về cơ bản tôi muốn tạo loại điều XMLDesigner trong Flex, sử dụng người dùng nào có thể thêm/chỉnh sửa các thành phần và thuộc tính của khung nhìn/trang tổng quan. tôi đang lưu trữ cấu trúc khung nhìn trong tệp xml. tôi đã phân tích cú pháp tệp đó ở chế độ xem thời gian chạy và chế độ hiển thị. Cách chuyển đổi một đối tượng (có thuộc tính và đối tượng con) thành nút xml (có thuộc tính và phần tử) và thêm xml đó vào tệp xml hiện có. để lần sau khi tôi phân tích cú pháp tệp xml tôi sẽ nhận được thành phần mới đó trong chế độ xem/trang tổng quan của mình.tạo xml từ đối tượng

cho ví dụ, cấu trúc đối tượng của thành phần trong file 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> 

Cảm ơn trước.

Trả lời

7

Sử dụng thư viện tuần tự hóa XML (de).

Có rất nhiều thứ ở đó nhưng một điều tôi đã sử dụng và thấy rất ổn định là FlexxB. Nó có rất nhiều chức năng và tôi thề với nó!

Flexxb là chú thích dựa trên và rất dễ sử dụng khi bạn bị treo nó.

Đây là mẫu được sao chép từ trang web chính.

 [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(); 
       } 
     } 

Bạn trang trí từng biến của bạn bằng chú thích và cho biết loại XML đó là gì.

Và bạn tạo đối tượng

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

Và bạn làm

FlexXBEngine.instance.serialize(target)

Và kết quả sẽ là

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

Và điều TUYỆT khác về là bạn don không cần phải có nguồn gốc của một vật thể để trang trí nó.

Có API xử lý điều đó. Sử dụng AP này, tôi thành công de (serialized) SolidColorLinearGradient nơi tôi không có nguồn để trang trí nó.

Thanh toán General DescriptionSamples. Và đó là số one SWC install :)

+0

thư viện rất thú vị – maxmc

+0

Hi Ranhiru, Cảm ơn bạn đã liên kết nó gần giống như tôi cần. Trong lần đầu tiên, chúng ta phải định nghĩa các lớp cho mỗi thành phần và định nghĩa các thuộc tính và các phần tử của chúng. Điều gì sẽ xảy ra nếu chúng tôi muốn thêm các thuộc tính mới vào các thành phần cho ví dụ: Trong trường hợp này, trước tiên chúng ta phải định nghĩa thuộc tính fontSize trong lớp Mock3. Chúng ta có thể làm những điều này bằng cách sử dụng flexXB ?? làm thế nào tôi có thể thêm các thuộc tính/yếu tố mới vào lớp Mock3 trong thời gian chạy ?? – Gannesh

+1

Có. Đó là cách dễ dàng khi bạn biết tất cả các thuộc tính. Hoặc nếu không, bạn có thể sử dụng ** Chú thích API ** để đăng ký các chú thích tại thời gian chạy. Kiểm tra phần ** Bộ mô tả xây dựng theo lập trình ** trong http://code.google.com/p/flexxb/wiki/Samples2x –

0

Tôi sẽ sử dụng asbeangen cho công việc.

  1. Bạn định nghĩa một dtd
  2. Bạn tạo các lớp mô hình actionscript từ dtd
  3. Trong mã ActionScript của bạn, bạn tải xml của bạn và điền vào mô hình được tạo ra với các giá trị
  4. Bạn sửa đổi mô hình và gọi ToXml() trên gốc của nó. Điều đó cung cấp cho bạn một xml với các giá trị modyfied.

Dưới đây là chi tiết hơn quickstart.

+0

Có vẻ phức tạp! – Gannesh

Các vấn đề liên quan