当我点击用户列表时,会触发函数addTab
:
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);
}
在另一个函数中,我想将Rich Text添加到新创建的TextBox中,但我无法访问它。
我尝试了getChildByName(vbox)
和vbox.getChildByName(textBox)
,但这似乎不起作用。
答案 0 :(得分:0)
要为childbyname分配一个可加密文本的名称,如果你想通过计数器获取它,那么也要给vbox命名,如下例所示:
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);
}
如果您知道索引,那么
var vb:VBox = tabNavigator.getChildByName("dynamicTextBox"+index) as VBox;
var txt:RichEditableText=vb.getChildByName("dynamicTextBox"+index) as VBox;
所以这会给你RichEditableText。
或者,如果您想在添加到标签后立即访问,请从addtab
函数返回RichEditableText。
答案 1 :(得分:0)
阐述我的评论,我的想法是你做这样的事情:
private var counter:int = 0;
public function addTab():void {
var new vBox:VBox = new VBox();
vBox.name = "dynVbox" + counter;
var textBox:RichEditableText = new RichEditableText();
textBox.name = "dynamicTextBox" + counter;
var textFlow:TextFlow = new TextFlow();
textFlow.name = "dynamicTextFlow" + counter;
vbox.addChild(textFlow);
vbox.addChild(textBox);
tabNavigator.add(vBox);
counter++;
}
现在,在此功能之外,您只需要知道所需vBox的计数器编号。例如:
var myBox = tabNavigator.getChildByName('dynVbox'+ 32).getChildByName('dynamicTextBox'+32)
如果没有看到更多的代码,我不知道这是否是最好的解决方法,但如果你想用一些动态生成的名称标记你的盒子并稍后查找它,这将有效