Search code examples
apache-flexadobemxmlred5

Flex: access dynamically added RicheEditableText in other function


When I click on a userlist, the function addTab is triggered:

private var counter:int = 0;

public function addTab():void {
    var new vBox:VBox = new VBox();
    var textBox:RichEditableText = new RichEditableText();
    var nameEm:String = "dynamicTextBox" + counter;
    textBox.id = nameEm;
    counter++;
    var textFlow:TextFlow = new TextFlow();
    vbox.addChild(textFlow);
    vbox.addChild(textBox);
    tabNavigator.add(vBox);
}

In another function, I would like to add Rich Text to the newly created TextBox, but I can not access it.

I tried getChildByName(vbox) and vbox.getChildByName(textBox), but that doesn't seem to work.


Solution

  • To get childbyname assigned a name to richeditable text and if you want to get it by counter then give name to vbox also, as in the sample here:

    private var counter:int = 0;
    
    public function addTab():void {
        var new vBox:VBox = new VBox();
        var textBox:RichEditableText = new RichEditableText();
        var nameEm:String = "dynamicTextBox" + counter;
        textBox.id = nameEm;
        vBox.name=nameEm;
        textBox.name=nameEm;
        counter++;
        var textFlow:TextFlow = new TextFlow();
        vbox.addChild(textFlow);
        vbox.addChild(textBox);
        tabNavigator.add(vBox);
    }
    

    If you know the index then

    var vb:VBox = tabNavigator.getChildByName("dynamicTextBox"+index) as VBox;
    var txt:RichEditableText=vb.getChildByName("dynamicTextBox"+index) as VBox;
    

    So this will give you RichEditableText.

    Or if you want to get access just after adding in to tab then return RichEditableText from the addtab function.