Что использовать в качестве базы для пользовательского компонента MXML? - PullRequest
1 голос
/ 26 августа 2011

Я использую несколько пользовательских компонентов MXML в своем приложении Flex 4.5.

Все они используют абсолютные координаты для размещения компонентов Image, Label, Line и т. Д. И в настоящее время основаны на spark.components.BorderContainer :

<?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="160" height="140" borderWeight="0" 
    creationComplete="init(event)">

    <s:layout>
        <s:BasicLayout />
    </s:layout>

    <s:Image id="_avatar" x="0" y="0" width="160" height="120" />
    <s:Label id="_username" x="1" y="122" width="80" /> 
    <s:Label id="_bid" x="80" y="122" width="40" textAlign="center" /> 
    <s:Label id="_trix" x="120" y="122" width="36" textAlign="right" />
        .... and so on: Images, Labels, Paths, Lines, Rects .... 
</s:BorderContainer>

Тогда я понял, что мне, вероятно, не нужно использовать BorderContainer, потому что я не рисую / не нуждаюсь в границах вокруг своих пользовательских компонентов.

Но я не знаю, что взять вместо него.

Я пытался взять (и удалить тег выше), но затем я получаю ошибку:

'Image' declaration must be contained within the <Declarations> tag since it does not implement 'mx.core.IUIComponent'.
'Label' declaration must be contained within the <Declarations> tag since it does not implement 'mx.core.IUIComponent'.

Есть предложения, пожалуйста? Есть ли какой-нибудь простейший искровой «контейнер»? И нужен ли вообще «контейнер», если я использую (и хочу использовать) абсолютные координаты?

1 Ответ

4 голосов
/ 26 августа 2011

Я рекомендую вам использовать s:Group.И вы можете опустить объявление layout, поскольку BasicLayout является макетом по умолчанию.

UIComponent не является контейнером, поэтому у него нет местозаполнителя по умолчанию для добавления их в MXML.

...