Если я правильно понимаю, то да, это возможно. Вы терминология «вызов компонента» нестандартная; но я думаю, что вы хотите создать компонент в ActionScript вместо MXML. Все, что вы можете сделать с MXML, вы можете сделать с помощью ActionScript.
У вас есть правильная идея; и ты почти весь путь туда; есть всего несколько вещей, которые я бы изменил. Во-первых, в ActionScript вы импортируете класс; вы бы не ссылались на пространство имен MXML, концептуально вроде этого:
import com.myPackage.msns;
В вашем блоке сценария.
При создании компонента вы хотите создать переменную, которая указывает на нее. Это будет соответствовать полю id в MXML. Ваш синтаксис ns1:msns:component
, вероятно, вызовет ошибки компилятора. Но вы можете создать компонент, как это:
var msns :component = new component()
Я здесь упомянуть, что обычно конвенцию прописных букв имен компонентов. Однако ваше использование строчной буквы не является синтаксически неправильным.
Затем установите свойства на компоненте, который вы уже делаете:
msns.x = 5
msns.x = 5
И, наконец, - это шаг, который вы не хватает - необходимо добавить новый компонент в контейнер. Вы можете сделать это с помощью addElement, если вы имеете дело с контейнерами Spark или addChild, если вы имеете дело с контейнерами MX. Так, в примере, который вы указали вы родительский контейнер является искрой Application, я буду использовать addElement:
this.addElement(msns);
Итак, вы блок кода будет переписан так:
protected function mmshakkoutab(event:MouseEvent):void{
var msns:component = new component();
msns.x = 5
msns.x = 5
this.addElement(msns);
}
Одна вещь, которую вы должны рассмотреть, является Flex Component LifeCycle. Каждый компонент Flex проходит через него; и определенные вещи выполняются в определенном порядке для определенной цели. Для создания детей вам может быть лучше продлить createChildren(), особенно если вы хотите, чтобы компонент был создан как часть первоначальной настройки вашего тега приложения.
Я должен +1 это несмотря на то, что мы писали наши соответствующие ответы в то же время. :-) – JeffryHouser
Спасибо, ребята, я сначала попробую, когда приеду завтра на работу: D –