Flex读取 .txt文件的内容到一个文本控件里,显示即可。希望能把整个mxml的代码都附上,谢谢!
2个回答
2013-11-29
展开全部
挺简单的,用File类选文件,FileStream读(或者写等操作)
<?xml version="1.0"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script><![CDATA[
private function button1_clickHandler(e:MouseEvent):void {
var file:File = File.applicationDirectory.resolvePath('a.txt');
var fs:FileStream = new FileStream();
fs.open(file, FileMode.READ);
label.text = fs.readUTFBytes(fs.bytesAvailable);
fs.close();
}
]]></fx:Script>
<s:Button click="button1_clickHandler(event)" label="test"/>
<s:Label id="label" y="30">click test button to load file</s:Label>
</s:WindowedApplication>
追问
谢谢你啊,不过这样读出来的txt内容是乱码也,我听人说好像是什么要把里面的内容转换成流,然后再tostring()成字符读出来,这样的话,你能帮忙解决下吗?
追答
label.text = fs.readMultiByte(fs.bytesAvailable, "utf-8");
用这个方法,改成你txt的编码即可
展开全部
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="200" minWidth="400" minHeight="400" creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.core.ByteArrayAsset;
[Bindable]
private var _textValue:String;
[Embed(source="test1.txt",mimeType="application/octet-stream")]
private var myTextFileClass:Class;
private function init():void {
var ba:ByteArray = new myTextFileClass();
var str:String = ba.readUTFBytes(ba.length);
this._textValue = str;
}
]]>
</fx:Script>
<s:Label x="10" y="10" width="158" height="51" text="{_textValue}"/>
</s:Application>
注意:那个readUTFBytes有bug,如果txt文件的内容太短,小于4,会读不出来。可能是utf文件格式的问题。这种方法是打包在swf文件中的文本,通用于所有项目。
貌似你是air项目,可以用楼上的读文件的方式读取,注意编码格式就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询