检索数组

时间:2016-11-01 03:50:55

标签: arrays string actionscript-3

这可能很容易,但我无法得到答案。这是一个简单的数组:

我希望在点击后将信息从输入文本框分发到不同的动态文本框。按钮我没问题。

var ERLQ1:Array = ["ERLQ1",  "N09°02.61 / E100°49.11", "ErawanLq"];
InputText = "ERLQ1";
    //I want to display:
Txt1 = "ERLQ1"           //Being first part of the array as main reference.
Txt2 = "N09°02.61 / E100°49.11"   // Should be:   String(ERLQ1[1])
Txt3 = "ErawanLq"                 // Should be:   String(ERLQ1[2]) 

我第一次在这样的论坛上写作。如果不完美,请原谅。提前致谢。 安德烈

2 个答案:

答案 0 :(得分:1)

如果我理解正确,一系列对象就能很好地运作。由于您有一定数量的文本字段,我假设您还有一组要在其中显示的详细信息。如果是这种情况,这个解决方案应该可以正常工作。

arr:Array = [{_name:"ERLQ1",ans1:"N09°02.61 / E100°49.11",ans2:"ErawanLq"},
             {_name:"ERLQ2",ans1:"question 2 answer 1",ans2:"ques2ans1"}];

所以,我并没有真正“获得”你的应用程序,但如果它是某种测验,你会为每个问题都有一个新的数组元素,并且该元素有一个名称和两个答案。易于修改以从答案池中获取答案。现在要查找数组中包含._name == "ERLQ1"的元素,您需要遍历所有元素并返回具有与您的搜索匹配的._name属性的元素。这是一个示例函数:

private function matchName(arr:Array, term:String):int{
    for (var i:int = 0; i < arr.length; i++){
        if (arr[i]._name == term){
            return i;
        }
    }
    return -1;
}

此函数将返回匹配项的数组索引号。如果不存在匹配,则返回-1。所以你可以这样使用它(伪代码):

// on submit search{
    // find the index number in the array of the element that matches the search term
    var ind:int = matchName(arr, searchTerm);

    // assign the textfield texts to the corresponding associated values
    textBox1:text = arr[ind]._name;
    textBox2:text = arr[ind].ans1;
    textBox3:text = arr[ind].ans2;
}

答案 1 :(得分:0)

我可能误解了(因为我的英语),但是:

import flash.text.TextField;
import flash.text.TextFieldAutoSize;
var ERLQ1:Array = ["ERLQ1",  "N09°02.61 / E100°49.11", "ErawanLq"];
var Txt1 : TextField = new TextField();
Txt1.autoSize=TextFieldAutoSize.CENTER;
Txt1.type = TextFieldType.INPUT;
Txt1.border = true;
var Txt2 : TextField = new TextField();
Txt2.autoSize=TextFieldAutoSize.CENTER;
Txt2.type = TextFieldType.INPUT;
Txt2.border = true;
var Txt3 : TextField = new TextField();
Txt3.autoSize=TextFieldAutoSize.CENTER;
Txt3.type = TextFieldType.INPUT;
Txt3.border = true;
addChild(Txt1);
addChild(Txt2);
addChild(Txt3);
Txt1.x = 20, y =40;
Txt2.x = 180, y =40;
Txt1.x = 300, y =40;
Txt1.text = ERLQ1[0];    // is now : first part of the array as main reference (String(ERLQ1[0]).
Txt2.text = ERLQ1[1];    // is now : String(ERLQ1[1]);
Txt3.text = ERLQ1[2];    // is now : String(ERLQ1[2]);

这将显示3个TextFiels作为输入文本,如下所示: enter image description here

如果我误解了您的问题,请告诉我更多关于您的期望! 最好的祝福。 尼古拉斯