Измените текст метки во время выполнения в flex

#actionscript-3 #apache-flex #actionscript #flash-builder

#actionscript-3 #apache-гибкий #actionscript #flash-builder #apache-flex

Вопрос:

я создал группу во время выполнения, а затем добавил в нее две кнопки и одну метку

 addElement (myGroup )

myGroup.addElement ( button 1 )
myGroup.addElement ( label )
myGroup.addElement ( button 2 )
  

теперь, когда я нажимаю на одну кнопку 2, я могу получить event.currentTarget.

Как я могу изменить текст метки, используя это event.currentTarget . Как я могу настроить таргетинг на метку

Ответ №1:

Я верю, что это может решить вашу проблему.
При создании объекта label предоставьте ему id . чтобы вы могли получить доступ к ярлыку через приложение, используя этот «идентификатор». Вы можете изменить текст с помощью этого id.text

Или вы можете использовать идентификатор объекта группы. как этот
groupObjectID.getElementAt(index).text

Ответ №2:

Вы можете увидеть, является ли event.currentTarget меткой, приведя его с помощью оператора ‘as’

var lbl:Label = event.currentTarget as Label;
if (lbl)
{
//do rest of processing
}

Комментарии:

1. нет, текущая цель — кнопка. я хочу получить доступ к метке.

2. может быть, получив индекс текущей целевой кнопки, а затем обратившись к элементу с индексом на единицу меньше кнопки?

3. Да, либо это, либо определение идентификатора для метки, чтобы вам не приходилось всего этого делать.

4. ну, я пытаюсь, если вы можете дать подсказку, как бы я это сделал

5. var indi:int; indi = getElementIndex(кнопка(событие.currentTarget)); var label:Label = new Label (); label = getElementAt (indi-1) в качестве метки; userName = label.text; это код, который я использую

Ответ №3:

Дайте имя вашей метке label.name='lblSomething' .
Затем вы можете получить доступ с помощью var mylabel:Label = myGroup.getChildByName(lblSomething) as Label

Ответ №4:

Попробуйте var labelStr:String = event.currentTarget.label;

Ответ №5:

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

Это также хорошая практика… только мои 2 цента.

 public var t_label:Label = new Label (); // t_ just stands for temporary... nothing special
myGroup.addElement (this.t_label);
  

Затем внутри ЛЮБОГО обработчика событий вы можете написать что-то вроде этого, чтобы изменить текст метки.

 private function onWhateverHandler (event:Event):void
{
    this.t_label.text = "whatever new string value";
}