Исходя из комментариев; Похоже, вы передаете неправильную вещь в функцию; скорее всего, экземпляр компонента вместо имени фактического компонента.
Это немного расплывчато, потому что вы не показали нам способ или способ, которым вы его называете. Но вот что-то вроде этого:
public function myFunction(component:UIComponent):void{
trace(component);
trace(component.id);
}
Ожидается экземпляр компонента, а не действительный компонент. Вы можете позвонить этой функции следующим образом:
myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)
Если вы хотите перейти в идентификационный номер; это было бы необычно, но вы можете сделать что-то вроде этого:
public function myFunction(componentID:String):void{
trace(this[componentID]);
trace(componentID);
}
И вы могли бы назвать это так:
myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..
Это очень необычно использовать ID по сравнению с фактическим, например, вы должны обработать. Требование экземпляра предоставляет лучшую документацию для человека, которому необходимо поддерживать этот код в будущем. Требование идентификатора строки требует необходимости, чтобы функция находилась в том же компоненте, у которого есть ID в качестве дочернего элемента; что может снизить возможности повторного использования или рефакторинга в будущем.
Пробовал ли вы это [dg_id] .id? Прошло некоторое время с тех пор, как я получил свои руки, но это могло быть так просто ... –
lol, который сделал трюк. благодаря – Adam