Flex: вложенные теги в MXML == метод запуска.... как это настроить?

У меня есть класс с именем JDChart и класс с именем JDLine. Внутри JDChart есть метод addLine(), который ожидает 1 параметр типа JDLine. Это все хорошо. но я хочу иметь возможность поместить это в XML, как это:

<JDChart>
<JDLine/>
<JDLine/>
<JDLine/>
</JDChart>

И для каждой JDLine, вложенной в JDChart в MXML, я хочу, чтобы метод addLine() вызывался на JDChart с соответствующей переданной JDLine.

Делает ли то, что я хочу сделать, с тех пор? Я не уверен, как это настроить? Я предполагаю, что я должен использовать мета-теги в классе JDChart где-нибудь, чтобы сказать компилятору сделать это? Кто-нибудь знает?

Спасибо!!

2 ответа

Решение

Я считаю, что когда вы добавляете такие вещи в MXML, они просто конструируют их, а затем вызывают addChild ().

Вы можете иметь JDChart переопределить addChild(), и проверить тип того, что добавляется. Если это JDLine, вы можете передать его в свой метод addLine(), прежде чем передать его в super.addChild ().

Если объекты JDLine собираются родить только объекты JDChart, используйте это.

в added обработчик события класса JDLine, добавьте следующий код:

public function onAdded(e:Event):void
{
  var chart:JDChart = this.parent as JDChart;
  if(!chart)
    throw new Error("Parent is not JDChart");
  chart.addLine(this);
}
Другие вопросы по тегам