Есть ли способ передать 'self' или 'this' при вызове встроенной функции во Flex для текущего компонента? - PullRequest
2 голосов
/ 05 декабря 2011

Надеюсь, я сформулировал вопрос в порядке.

Я знаю, что вы можете передать 'id' компонента, но мне просто интересно, есть ли более общий способ. Я попытался использовать «this» (показано в примере ниже), но ключевое слово «this» относится к приложению.

Пример:

<mx:Button click="someFunc(this)"/>

И следующий вызов функции не работает (так как это неправильный тип):

someFunc(comp : UIComponent) : void {
    comp.label = 'Change label';
}

Если у меня есть 20 компонентов, я бы хотел иметь возможность вызывать одну и ту же функцию, не используя 'id' для разных компонентов.

Есть ли способ?

1 Ответ

4 голосов
/ 05 декабря 2011

ключевое слово 'this' относится к приложению.

В компоненте MXML ключевое слово this будет ссылаться на тег верхнего уровня, который не будет приложениемво многих ситуациях.

В вашем случае я бы передавал событие click и использовал свойства target или currentTarget, чтобы выяснить, какой компонент был нажат:

<mx:Button click="someFunc(event)"/>

someFunc(event:MouseEvent) : void {
    trace(event.target);
    trace(event.currentTarget);
    (event.target as Button).label = "Change Label";
}

Я почти уверенчто вам понадобится цель, так как это всегда будет компонент, отправивший событие.

...