读取 AS3 中的字符串
Read a string in AS3
我有一个关于我的项目的问题,即如何在 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);
}
我希望我能得到这个问题的答案。
如果您无法理解最后一部分的概念,请通知我。在你能帮助我之前,我会尝试更多地解释它。
提前致谢
第一部分答案:
for (var i=0; i<days.length; i++)
{
str = days[i];
text_txt.text += str + ";" + "\n";
}
希望我理解正确..
凭记忆写的,如有错别字请见谅...
对于第二部分,添加一个 switch-case
switch(str) {
case "sun":
Show(??);
break;
.
.
.
}
您必须为您的 TextField
启用多行功能(如果没有)
adobe As3 文档:
join() Converts the elements in an array to strings, inserts the
specified separator between the elements, concatenates them, and
returns the resulting string. A nested array is always separated by a
comma (,), not by the separator passed to the join() method.
so str = days.join("");
将 Array 转换为单个字符串,并且根据您的要求(传递给 join 的参数为空“”),获取的行之间没有任何内容。而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")
而不是将其与“==”运算符进行比较,因为“\r”或“\n”等不可见字符。
if (str.indexOf("sun") >= 0){
show(obj01);
}
if (str.indexOf("mon") >= 0){
show(obj02);
}
我有一个关于我的项目的问题,即如何在 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);
}
我希望我能得到这个问题的答案。 如果您无法理解最后一部分的概念,请通知我。在你能帮助我之前,我会尝试更多地解释它。 提前致谢
第一部分答案:
for (var i=0; i<days.length; i++)
{
str = days[i];
text_txt.text += str + ";" + "\n";
}
希望我理解正确.. 凭记忆写的,如有错别字请见谅...
对于第二部分,添加一个 switch-case
switch(str) {
case "sun":
Show(??);
break;
.
.
.
}
您必须为您的 TextField
启用多行功能(如果没有)
adobe As3 文档:
join() Converts the elements in an array to strings, inserts the specified separator between the elements, concatenates them, and returns the resulting string. A nested array is always separated by a comma (,), not by the separator passed to the join() method.
so str = days.join("");
将 Array 转换为单个字符串,并且根据您的要求(传递给 join 的参数为空“”),获取的行之间没有任何内容。而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")
而不是将其与“==”运算符进行比较,因为“\r”或“\n”等不可见字符。
if (str.indexOf("sun") >= 0){
show(obj01);
}
if (str.indexOf("mon") >= 0){
show(obj02);
}