2011-12-17 2 views
0

Я передаю идентификатор компонента функции, а затем используя id в качестве переменной.использовать id как переменную

Например ид я передаю это - user_dg

Issue Я имею, когда я делаю след на переменной - this[dg_id]

я получаю - Application0.Canvas662.Canvas878.DataGrid888, когда я хочу, чтобы это было - user_dg

Как я могу вывести фактический идентификатор компонента?

+3

Пробовал ли вы это [dg_id] .id? Прошло некоторое время с тех пор, как я получил свои руки, но это могло быть так просто ... –

+0

lol, который сделал трюк. благодаря – Adam

ответ

1

Исходя из комментариев; Похоже, вы передаете неправильную вещь в функцию; скорее всего, экземпляр компонента вместо имени фактического компонента.

Это немного расплывчато, потому что вы не показали нам способ или способ, которым вы его называете. Но вот что-то вроде этого:

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 в качестве дочернего элемента; что может снизить возможности повторного использования или рефакторинга в будущем.

Смежные вопросы