我目前正在for循环中创建文本字段 - 尽管在此示例中仅创建一个TextField。
我的问题是,如何删除另一个函数中的TextField子项? 我基本上做的是,创建一个Textfield,addchild到一个容器 - >然后将容器放到另一个位置 - >然后删除容器中的child和另一个文本。我尝试过类似的东西:
removeChild(getChildByName(myTextField2));
编辑:也许我的解决方案也可以只是将TextField的文本更改为其他内容,而不是将其删除并添加新文本。
public function handleTextFrames(numberOfFrames:Number, textFrame1:String, textFrame2:String, textFrame3:String, textFrame4:String):void
{
var textArray:Array = new Array(textFrame1,textFrame2,textFrame3,textFrame4);
// Creating font instance
var garageInstance:Font = new garage();
//Creating the textfield object and naming it "myTextField"
var myTextField:TextField = new TextField();
//Here we add the new textfield instance to the stage with addchild()
textContainer.alignContainer1.addChild(myTextField);
//myTextField.width = 930;
myTextField.embedFonts = true;
myTextField.multiline = true;
myTextField.wordWrap = false;
myTextField.selectable = false;
var myText:String = textArray[0];
myTextField.htmlText = myText;
//This last property for our textfield is to make it autosize with the text, aligning to the left.
myTextField.autoSize = TextFieldAutoSize.LEFT;
//This is the section for our text styling, first we create a TextFormat instance naming it myFormat
var myFormat:TextFormat = new TextFormat();
//Embedding font
myFormat.font = garageInstance.fontName;
myFormat.color = 0xffffff;
myFormat.size = 60;
myFormat.align = TextFormatAlign.CENTER;
//Now the most important thing for the textformat, we need to add it to the myTextField with setTextFormat.
myTextField.setTextFormat(myFormat);
myTextField.y = textContainer.alignContainer1.height * 0.5 - myTextField.textHeight * 0.5;
myTextField.x = payoffContainer_mc.width / 2 - myTextField.textWidth / 2;
}
答案 0 :(得分:2)
你到底想做什么? :)因为如果你将文本字段保存在“全局”数组中,那就可以解决它。
假设您将其保存在一个名为textfields
的数组中。
var textfields:Array = [];
通过
将所有内容都推送到此处textfields.push(textfield);
然后,您可以随时通过调用此函数来删除它:
textfields[0].parent.removeChild(textfields[0]);
关于第一个元素。在闪存中,这总是有效:
INSTANCE.parent.removeChild(INSTANCE);
这有帮助吗?
答案 1 :(得分:0)
首先给文本字段命名:
var myTextField:TextField = new TextField();
myTextField.name = "mytextfield";
然后你通过这样做来访问它:
var myTextField:TextField = textContainer.alignContainer1.getChildByName("mytextfield");
删除它:
textContainer.alignContainer1.removeChild(myTextField);
myTextField = null;
答案 2 :(得分:0)
对于一个,而不是getChildByName - 考虑只使用这个方法:
container["text_field_name"];
另外,我建议让你的removeChild()调用更严格一些,以避免出现空对象引用错误:
var tf:TextField = TextField(container["text_field_name"]);
if(tf.parent) tf.parent.removeChild(tf);
您需要从函数中访问要删除它的所有内容是“容器”,它是TextField的父,以及TextField本身。
希望这有帮助。