有没有办法在为移动设备构建的 AS3/Air 应用程序中动态添加文本输入字段?
我有一个表单,用户需要在其中输入一些信息(姓名、地址、出生日期等),并且有一个部分供用户输入联系电话。我希望能够添加无限数量的联系电话。为此,我有一个“添加号码”按钮。用户单击它,屏幕将 1 个新的文本输入添加到列表底部。
任何指导或代码示例表示赞赏。
有没有办法在为移动设备构建的 AS3/Air 应用程序中动态添加文本输入字段?
我有一个表单,用户需要在其中输入一些信息(姓名、地址、出生日期等),并且有一个部分供用户输入联系电话。我希望能够添加无限数量的联系电话。为此,我有一个“添加号码”按钮。用户单击它,屏幕将 1 个新的文本输入添加到列表底部。
任何指导或代码示例表示赞赏。
我很无聊,所以我做了一个小演示。查看下面的链接。
演示: http ://ronnieswietek.com/_random/phone_nums.swf
资料来源: http ://ronnieswietek.com/_random/phone_nums.fla
下面的代码可能有点臃肿,但仅用于演示目的
import flash.events.MouseEvent;
import fl.controls.TextInput;
import flash.display.Sprite;
var lastY:Number = origPhoneField.y;
var fieldHolder:Sprite = new Sprite();
fieldHolder.x = origPhoneField.x;
fieldHolder.y = origPhoneField.y + 35;
addChild(fieldHolder);
function addPhoneField(e:MouseEvent):void
{
//-- clicking the plus icon will add a new custom text input
//-- its only custom because I added a minus button to it
var newInput:CustomTextInput = new CustomTextInput();
newInput.y = (fieldHolder.numChildren > 0) ? fieldHolder.height + 5 : 0;
fieldHolder.addChild(newInput);
newInput.minusBtn.addEventListener(MouseEvent.CLICK, removePhoneField);
}
addBtn.addEventListener(MouseEvent.CLICK, addPhoneField);
function removePhoneField(e:MouseEvent):void
{
//-- clicking the minus will remove the movie clip and reposition the other fields vertically
fieldHolder.removeChild(e.target.parent);
for (var i:int = 0; i < fieldHolder.numChildren; i++)
{
var target = fieldHolder.getChildAt(i);
target.y = (i * 35);
}
}
function showNumbers(e:MouseEvent):void
{
//-- for demo purposes, this will output all the values
outputWin.text += origPhoneField.text + "\n";
for (var i:int = 0; i < fieldHolder.numChildren; i++)
{
var target = fieldHolder.getChildAt(i);
outputWin.text += target.theField.text + "\n";
}
outputWin.text += "================\n";
}
showNums.addEventListener(MouseEvent.CLICK, showNumbers);