Actionscript 3 如何创建一个按钮,使一个新的文本字段出现在屏幕上?
我一直很难按这个按钮。我想要它,这样每当你点击它,一个新的文本字段弹出,你可以键入的东西。这应该是一个类似琐事的游戏,用户输入自己的问题和答案。这是到目前为止的代码 这是文本字段的属性-Actionscript 3 如何创建一个按钮,使一个新的文本字段出现在屏幕上?,actionscript-3,Actionscript 3,我一直很难按这个按钮。我想要它,这样每当你点击它,一个新的文本字段弹出,你可以键入的东西。这应该是一个类似琐事的游戏,用户输入自己的问题和答案。这是到目前为止的代码 这是文本字段的属性- QuestionTextField = new TextField(); QuestionTextField.defaultTextFormat = SmallTextFormat; QuestionTextField.textColor = 0x6600
QuestionTextField = new TextField();
QuestionTextField.defaultTextFormat = SmallTextFormat;
QuestionTextField.textColor = 0x660000;
QuestionTextField.x = stage.stageWidth * 0.1;
QuestionTextField.y = 200;
QuestionTextField.width = stage.stageWidth * 0.8;
QuestionTextField.height = 20;
QuestionTextField.selectable = false;
QuestionTextField.type = TextFieldType.INPUT;
QuestionTextField.border = true;
QuestionTextField.multiline = true;
QuestionTextField.wordWrap = true;
这个函数应该在每次点击按钮时创建一个新的文本字段-
private function AddQuestionButtonClicked(m:MouseEvent){
for(var i = Questions.length; i>=1; i--){
container_buttonsMC.addChild(QuestionTextField);
Questions.push(QuestionTextField);
QuestionTextField.y += 20
}
}
注:“问题”是一个数组,其中包含文本字段的数量,容器按钮MC包含游戏主菜单上的所有按钮
问题是每当我点击它时,它都是1。实际上并不创建新的文本字段,而是将其向下移动一定数量的像素,然后2。它在某种程度上复制了文本字段的位置……如果这有任何意义的话。如果我点击按钮一次,它会将文本字段向下移动20像素。如果我再次单击它,它会将其向下移动40像素,然后再移动80像素,依此类推
我还跟踪了数组的长度,令人惊讶的是,每次单击时出现的数字都会翻倍。但是,只有一个文本字段可见(显然)。这可能与for循环的操作有关,但我不确定。有人知道问题出在哪里吗?(提前感谢,我对AS3和编程还是个新手)首先,每次单击按钮时,每个人都需要创建一个新的文本字段,而不是将其添加到后台。根据目前的情况,您只创建了一个文本字段 第二,您只想再添加一个文本字段,对吗?因此,与使用循环(将创建多个新文本字段)不同,只需创建一个额外的文本字段并将其添加到列表中 代码将类似于
private function AddQuestionButtonClicked(m:MouseEvent){
var QuestionTextField:TextField = new TextField()
QuestionTextField.defaultTextFormat = SmallTextFormat;
QuestionTextField.textColor = 0x660000;
QuestionTextField.x = stage.stageWidth * 0.1;
QuestionTextField.y = 200;
QuestionTextField.width = stage.stageWidth * 0.8;
QuestionTextField.height = 20;
QuestionTextField.selectable = false;
QuestionTextField.type = TextFieldType.INPUT;
QuestionTextField.border = true;
QuestionTextField.multiline = true;
QuestionTextField.wordWrap = true;
// You can adjust the 50 here to control the spacing between text fields
QuestionTextField.y += 50 * Questions.length
container_buttonsMC.addChild(QuestionTextField);
Questions.push(QuestionTextField);
}
这修复了数组问题,但只要单击按钮,先前存在的文本字段就会消失。它将删除文本字段,更改其y值,然后再次添加。Hm。您确定有
new TextField()
的行在那里吗?是否有任何东西会删除一个文本字段?能否将此添加到末尾并告诉我发生了什么<代码>如果(Questions.length>1){trace(Questions[0]==Questions[1]);}我想我找到了答案。。。文本字段没有被删除,只是看起来有一个,因为它们彼此叠在一起……而且,你告诉我要添加的内容给了我1009错误。