我对我的项目有一个问题,即如何在AS3中读取字符串。
实际上,我有一个名为test.txt的文本文件。例如:
它包括: 周日,周一,周二,周三,周四,周五,周六
然后我想将它们全部放入一个数组中,然后将一个字符串显示在名为text_txt的动态文本框中:
var myTextLoader:URLLoader = new URLLoader();
myTextLoader.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e:Event):void
{
var days:Array = e.target.data.split(/\n/);
var str:String;
stage.addEventListener(MouseEvent.CLICK, arrayToString);
function arrayToString(e:MouseEvent):void
{
for (var i=0; i<days.length; i++)
{
str = days.join("");
text_txt.text = str + "\n" + ";"; //it does not work here
}
}
}
myTextLoader.load(new URLRequest("test.txt"));
但它不会在不同的行显示它们然后放一个“;”在每一行的末尾!
我可以让它以不同的方式显示它们,但我需要将它们放在txt文件中的不同行中,而且我仍然没有得到“;”在每一行的末尾,除非在每一行的末尾将它放在下一个文件中。
然后我想读取字符串并根据每个单词或行显示我的库中的对象。例如:
//I do not know how to write it or do we have a function to read a string and devide it to the words after each space or line
if (str.string="sun"){
show(obj01);
}
if (str.string="mon"){
show(obj02);
}
我希望我能得到这个问题的答案。 如果您无法获得最后一部分的概念,请通知我。我会尝试解释它,直到你能帮助我。 提前致谢
答案 0 :(得分:1)
您必须为TextField
启用多线功能(如果没有)
join()将数组中的元素转换为字符串,插入 元素之间指定的分隔符,连接它们,和 返回结果字符串。嵌套数组始终用a分隔 逗号(,),而不是传递给join()方法的分隔符。
所以str = days.join("");
将数组转换为单个字符串,并且当你的需求(传递给join的参数为空&#34;&#34;)时,获取的行之间没有任何东西。 text_txt.text = str + "\n" + ";";
只在文字末尾加上 新行 。
var myTextLoader:URLLoader = new URLLoader();
var days:Array;
myTextLoader.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(e:Event):void
{
days = e.target.data.split(/\n/);
var str:String;
stage.addEventListener(MouseEvent.CLICK, arrayToString);
}
myTextLoader.load(new URLRequest("test.txt"));
function arrayToString(e:MouseEvent):void
{
text_txt.multiline = true;
text_txt.wordWrap = true;
text_txt.autoSize = TextFieldAutoSize.LEFT;
text_txt.text = days.join("\n");
}
我也将arrayToString
移出onLoaded
第二个问题:要检查一个单词的存在,最好使用indexOf("word")
将其与&#34; ==&#34;进行比较。运算符,因为像&#34; \ r&#34;这样的隐形字符或&#34; \ n&#34;。
if (str.indexOf("sun") >= 0){
show(obj01);
}
if (str.indexOf("mon") >= 0){
show(obj02);
}
答案 1 :(得分:0)
回答第一部分:
for (var i=0; i<days.length; i++)
{
str = days[i];
text_txt.text += str + ";" + "\n";
}
我希望我能正确理解你。 我是从记忆中写的,如果有的话,抱歉打字错误
对于第二部分,添加一个switch-case
switch(str) {
case "sun":
Show(??);
break;
.
.
.
}