Предположим, у вас есть файл MyView.mxml, который в основном представляет собой Panel с
несколько детей (Form, FormItems, Buttons ...).
Можно ли перебирать MyView и получать всю информацию о
его дочерние элементы (типы, id ...) перед его отображением.
В моем Main.mxml, если у меня есть эта функция
public function iterateOverChildren(comp:Container):void {
// Get the number of descriptors.
trace("Running iterateOverChildren for " + comp.id);
if (comp != null)
{
var n:int = comp.childDescriptors.length;
for (var i:int = 0; i < n; i++) {
var c:ComponentDescriptor = comp.childDescriptors[i];
var d:Object = c.properties;
// Log ids and types of objects in the Array.
trace(c.id + " is of type " + c.type);
// Log the properties added in the MXML tag of the object.
for (var p:String in d) {
trace("Property: " + p + " : " + d[p]);
}
}
}
}
Почему этот звонок не работает?
var myV = MyView ();
iterateOverChildren (MYV);
Это работает, только если я добавлю заявление вроде
AddChild (MYV);
перед вызовом iterateOverChildren. (Но это не то, что я хочу, я хочу
повторять описания, не добавляя их для отображения).
Когда я читаю это
http://livedocs.adobe.com/flex/3/html/help.html?content=layoutperformance_06.html
Я думал, что метод childDescriptors не зависит от жизненного цикла, он позволил бы мне проанализировать компонент, не добавляя его к отображению. Что я упустил ? Как выполнить анализ компонента перед его отображением.