Я работаю над простым инструментом задач / календаря, где задачи можно динамически добавлять на холст. Вот основное приложение, определенное в Main.mxml, которое по сути является просто Canvas и кнопкой для добавления задачи:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Canvas id="MainCanvas" borderStyle="solid" width="300" height="300">
<mx:Button click="CreateTask();" label="create task" />
</mx:Canvas>
<mx:Script>
<![CDATA[
import Task;
private function CreateTask( ) : void
{
// create the task object
var thisTask:Task = new Task();
// add the task to the canvas
var taskUI : DisplayObject = MainCanvas.addChild( thisTask );
// position the task ui
taskUI.y = 50;
}
]]>
</mx:Script>
</mx:Application>
Я хочу, чтобы мои задачи были BorderContainers с меткой и кнопкой, определенной во внешнем mxml, которые можно просто создать и добавить на холст в Main.mxml. Вот Tasks.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:s="library://ns.adobe.com/flex/spark" cornerRadius="10">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:Label id="NameLabel" text="task name" />
<s:Button label="Button 1"/>
</s:BorderContainer>
Проблема в том, что при добавлении экземпляра Task в Canvas дочерние элементы (кнопка и метка) не отображаются. Я попытался установить creationPolicy = "all" на Canvas и BorderContainer, но он все еще не работал. Я прочитал кучу постов о людях, имеющих проблемы с доступом к членам своего класса до полной загрузки класса, но все, что я хочу сделать, это УВИДЕТЬ, что Label и Button отображаются внутри BorderContainer.
Спасибо.