#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";
}