2011-02-03 32 views
14

Điều tôi muốn làm: tạo thành phần MXML với một số trẻ em, sau đó mở rộng nó qua MXML để tạo thành phần mới với nhiều trẻ em hơn mà không làm mất tập gốc. Nói cách khácMở rộng các thành phần tùy chỉnh MXML qua MXML

tạo ra một thành phần bc.mxml

<?xml version="1.0" encoding="utf-8"?> 
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> 

    <s:Button id="b1" label="button1"/> 
</s:BorderContainer> 

và sau đó mở rộng nó đến một mc.mxml thành phần riêng biệt

<?xml version="1.0" encoding="utf-8"?> 
<borderContainerX:bc xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:borderContainerX="borderContainerX.*"> 

    <s:Button id="b2" y="100" label="button2"/> 
</borderContainerX:bc> 

và có được một thành phần với 2 nút.

Tôi đã nhìn thấy chủ đề khác nhau về cách thức này là một trong hai không thể (1) hoặc trên cách giải quyết để thực hiện điều này (2, 3) và đã tự hỏi nếu một cái gì đó đã thay đổi với sự ra đời của Flex 4 hoặc nếu chúng tôi vẫn còn bị mắc kẹt với những cách giải quyết cuối cùng trong chủ đề 3 dường như gợi ý tại Flex 4 sửa chữa tất cả?

+0

Tại sao không sử dụng một kết hợp của MXML và hành động Kịch bản? Tạo nút thứ hai của bạn trong phương thức createChildren() của thành phần thứ hai? – JeffryHouser

+3

chắc chắn. Tôi chỉ ngạc nhiên rằng mxml tinh khiết vẫn không hoạt động. Thành thật mà nói, nó rất tốt đẹp để thiết lập các thành phần thông qua mxml, nó có vẻ rất lạ mà điều này là không thể. –

Trả lời

11

Trong Flex 4, bạn sẽ phải ghi đè "mxmlContent" setter tài sản của bạn để bảo vệ trẻ em đã được xác định của bạn trong một tầng lớp phụ huynh

Một trong thực hiện khác nhau của một override như được trình bày trong các bình luận cho điều này blog entry

Mẹo (Flex 4): Tạm biệt mẫu - chào mxmlContent

http://www.websector.de/blog/2009/10/02/quick-tip-flex-4-goodbye-templates-hello-mxmlcontent/

+0

Ngoài ra, trong Flex 4 nó là nhiều hơn nữa thanh lịch để sử dụng Skin với nhiều lĩnh vực nội dung được xác định để đi kèm với nhiệm vụ của loại hình này: * Xây dựng Flex 4 Containers với nhiều khu vực nội dung * http://saturnboy.com/2010/07/multiple -content-area-containers/ – JabbyPanda

+0

Tôi đã thử điều này (bao gồm cả thiết lập của mxmlContent, nhưng nó không làm việc cho tôi. Bất kỳ đầu mối nào về lý do tại sao điều này sẽ là? – Dan

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