использовать идентификатор как переменную - PullRequest
0 голосов
/ 18 декабря 2011

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

Например, идентификатор, который я передаю, - user_dg

У меня проблема, когда я делаю трассировку по переменной - this[dg_id]

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

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

1 Ответ

1 голос
/ 18 декабря 2011

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

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

public function myFunction(component:UIComponent):void{
  trace(component);
  trace(component.id);
}

Ожидается экземпляр компонента, а не фактический компонент. Вы можете вызвать эту функцию так:

myFunction(myDataGrid);
myFunction(myList);
myFunction(myComboBox)

Если вы хотите передать в ID; это было бы необычно, но вы могли бы сделать что-то вроде этого:

public function myFunction(componentID:String):void{
 trace(this[componentID]);
 trace(componentID);
}

И вы могли бы назвать это так:

myFunction('stringThatRepresentsAVariableName');
myFunction(myDataGrid.id);
etc..

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

...