#flash #components #builder
#flash #Компоненты #Конструктор
Вопрос:
Я пытаюсь создать сворачивающийся список, подобный тем, что есть в 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>
Я уверен, что компилятор мне не лжет, так как же мне заставить эти объекты (дочерние элементы) отображаться?
Ответ №1:
В Spark, платформе Flex 4, они как бы абстрагировались от всего «addChild», потому что вы не работаете с DisplayList напрямую. Вместо этого вам нужно «Добавить элемент()» в группу.
Однако addElement требует, чтобы в качестве параметра был IVisualElement, если я правильно помню. В принципе, если вы привыкли к прямому старому AS3 «addChild()», то вам придется немного поучиться — результат того стоит, но это может быть сложно.
Вот сообщение в блоге, которое, кажется, довольно хорошо разбирается в нем, я надеюсь, это поможет: http://www.billdwhite.com/wordpress/?p=296