Ошибка метода addChild flash builder в пользовательском компоненте

Я пытаюсь сделать сворачивающийся список, как в Google Adwords. Компилятор говорит мне, что addChild не является допустимым методом. Вот мой код:

package comps
{
import spark.components.Button;
import spark.components.Group;
import spark.components.TextArea;

public class CollapsibleList extends Group
{

    private var btn : Button = new Button();
    private var list : TextArea = new TextArea();

    public function CollapsibleList()
    {
        super();
        this.btn.width = 100;
        this.btn.height = 20;
        this.btn.label = "My Button";
        this.btn.top = 0;
        this.btn.left = 0;

        this.list.width = 100;
        this.list.height = 200;
        this.list.top = 20;
        this.list.left = 0;

        this.addChild(this.btn);
        this.addChild(this.list);
    }
}
}

Я просто вызываю это в main.mxml так:

<?xml version="1.0" encoding="utf-8"?>
<s:Application 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:comps="comps.*"
           minWidth="955" minHeight="600">

<comps:CollapsibleList/>

</s:Application>

Я предполагаю, что компилятор мне не лжет, так как мне заставить эти объекты (дочерние элементы) появляться?


person steve    schedule 06.05.2011    source источник


Ответы (1)


В Spark, платформе Flex 4, они как бы абстрагируются от всего «addChild», потому что вы не работаете с DisplayList напрямую. Вместо этого вам нужно "добавитьЭлемент()" в группу.

Однако addElement требует, чтобы в качестве параметра был IVisualElement, если я правильно помню. По сути, если вы привыкли к простой старой AS3 "addChild()", то вам придется немного поучиться - отдача того стоит, но это может быть сложно.

Вот сообщение в блоге, которое, кажется, довольно хорошо раскрывается, надеюсь, это поможет: http://www.billdwhite.com/wordpress/?p=296

person Myk    schedule 07.05.2011