Это может быть не так интуитивно понятно, но используемый вами синтаксис MXML создает
MyTask объект в вашем контексте и создает и массив с задачами, которые он назначает
свойство «задачи» MyTask, а не самого контекста. Это может помочь
думать об этом как:
myContext.myTasks.tasks = [aTask, bTask];
Когда петрушка анализирует myContext, она находит myTasks и обрабатывает его.
Он не найдет aTask или bTask, которые вложены в массив задач в
MyTasks.
В Flex MXML, когда вы устанавливаете идентификатор для тега, он становится свойством
класс, в котором он создается - в этом случае, вложенный ATask и
BTask станет свойствами контекста, в котором вы их объявляете.
Так будет больше похоже:
myContext.myTasks.tasks = [aTask, bTask];
myContext.aTask = aTask;
myContext.bTask = bTask;
... Так что только тогда, когда Петрушка просматривает свойства вашего контекста,
найдет ли он вложенные задачи и сможет их обработать.
Я знаю, что MyTask не имеет этого идентификатора myTask, но ему это не нужно, так как это прямое свойство контекста (поэтому достаточно автоматически сгенерированного имени свойства). Если вы удалите TaskA и TaskB из определения MyTask и разместите их на том же уровне, что и MyTask, вы увидите, что PM правильно введен в них, но, конечно, они не будут работать в очереди, так как они вам нужны.
НТН,
Габриэль