ひっと

ActionScript ファイル読み込み

~ Flashアプリ、ゲームのためのAS3サンプルプログラム集 ~

テキストファイルを読み込む



package
{
    import flash.display.Sprite;
    import flash.text.*;
    import flash.events.Event;

    import flash.net.URLLoader;
    import flash.net.URLRequest;

    public class Main extends Sprite
    {
        public function Main()
        {
            var myFilepath:String = "./sample.txt";

            var myLoader:URLLoader   = new URLLoader();
            var myRequest:URLRequest = new URLRequest(myFilepath);
            myLoader.addEventListener(Event.COMPLETE, onComplete);
            myLoader.load(myRequest);

            function onComplete (eventObject:Event):void
            {
                //ファイルを読み終えたらここにきます。

                //eventObject.target.dataに文字データが入っている。
                var myStr:String = eventObject.target.data;

                //TextFieldを使って内容を表示する。
                var t:TextField = new TextField();
                t.multiline = true; //複数行
                t.text = myStr;
                t.width = 400;
                t.height = 300;
                addChild(t);

            }
        }

    }
}

ファイルをバイナリで読み込む


同じテキストファイルをバイナリで表示してみたものです。

myLoader.dataFormat = URLLoaderDataFormat.BINARY;
とするだけで、バイナリで読み込めます。

package
{
    import flash.display.Sprite;
    import flash.text.*;
    import flash.events.Event;
    import flash.utils.ByteArray;
    import flash.errors.EOFError;

    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLLoaderDataFormat;

    public class Main extends Sprite
    {
        public function Main()
        {
            var myFilepath:String = "./sample.txt";

            var myLoader:URLLoader   = new URLLoader();
            var myRequest:URLRequest = new URLRequest(myFilepath);
            myLoader.dataFormat = URLLoaderDataFormat.BINARY;
            myLoader.addEventListener(Event.COMPLETE, onComplete);
            myLoader.load(myRequest);

            function onComplete (eventObject:Event):void
            {
                //ファイルを読み終えたらここにきます。

                //eventObject.target.dataにバイナリデータが入っている。
		var ba:ByteArray = eventObject.target.data as ByteArray;

                //TextFieldを使って内容を表示する。
                var t:TextField = new TextField();
                t.multiline = true; //複数行

		try {
		    while(true) {
		        //EOF例外が出るまでバイナリデータをを読み進める
		        t.text += ba.readUnsignedByte().toString(16);//16進数
		    }
		}
		catch(e:EOFError) {
                    //ファイルの終わりになるとここにくる。
		}

                t.width = 400;
                t.height = 300;
		t.wordWrap = true; //折り返し表示
                addChild(t);
            }
        }

    }
}

目次へ
57801