flex_從檔案載入資料;

來源:互聯網
上載者:User

結果輸出:

=>File_Data:I Love You, Baby!我好想好想你哦!=>File Was successfully Loaded;=>Loaded(33) of (33) bytes;=>Loaded(0) of (33) bytes;


=>FileReferenceLoadExample

package com.learn.mix
{
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.net.FileFilter;
    import flash.net.FileReference;
    import flash.utils.ByteArray;
    
    import mx.core.UIComponent;
    
    /**
     * 從檔案載入資料類
     * @author cen
     */    
    public class FileReferenceLoadExample extends UIComponent
    {
        
        /**
         * 屬性*/
        /*檔案對象*/
        private var fileRef:FileReference;
        
        /**
         * constructor
         */        
        public function FileReferenceLoadExample()
        {
            /**
             * 初始設定檔案對象*/
            fileRef = new FileReference();
            fileRef.addEventListener(Event.SELECT, onFileSelectedHandler);
            fileRef.addEventListener(Event.CANCEL, onCancelHandler);
            fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorHandler);
            fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorHandler);
            
            /*允許檔案類型*/
            var textTypeFilter:FileFilter = new FileFilter("TextFiles(*.txt,*.rtf)", "*.txt;*.rtf");
            
            /*選擇檔案*/
            fileRef.browse([textTypeFilter]);
        }
        
        
        /**
         * 選擇檔案
         * @param event
         */        
        private function onFileSelectedHandler(event:Event):void {
            fileRef.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
            fileRef.addEventListener(Event.COMPLETE, onCompleteHandler);
            
            /*載入資料*/
            fileRef.load();
        }
        
        /**
         * 載入進度
         * @param event
         *
         */        
        private function onProgressHandler(event:ProgressEvent):void
        {
            trace("=>Loaded(" + event.bytesLoaded + ") of (" + event.bytesTotal + ") bytes;");
        }
        
        /**
         * 檔案載入完成
         * @param event
         *
         */        
        private function onCompleteHandler(event:Event):void
        {
            trace("=>File Was successfully Loaded;");
            
            var data:ByteArray = fileRef.data;
            data.position = 0;
            
           // var result:String = data.readUTFBytes(data.length);//如果外部txt檔案有中文,會出現亂碼;故使用下面方法轉換;
            

           var result:String = data.readMultiByte(data.length, "gb2312");
            trace("=>File_Data:"+result);
        }
        
        /**
         * 取消事件
         * @param event
         *
         */        
        private function onCancelHandler(event:Event):void
        {
            trace("=>The Browse request was canceled by the user;");
        }
        
        /**
         * 輸入/輸出錯誤
         * @param event
         *
         */        
        private function onIOErrorHandler(event:IOErrorEvent):void
        {
            trace("=>There was an IO Error;");
        }
        
        /**
         * 安全錯誤
         * @param event
         *
         */        
        private function onSecurityErrorHandler(event:SecurityErrorEvent):void
        {
            trace("=>There was a security error;");
        }
    }
}

=>app.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
               pageTitle="TheStudioOfCenyebao" creationComplete="creationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import com.learn.mix.FileReferenceLoadExample;
            
            import mx.events.FlexEvent;
            
            private var fileRef:FileReferenceLoadExample;
            
            protected function creationCompleteHandler(event:FlexEvent):void
            {
                
            }
            
            protected function btn_clickHandler(event:MouseEvent):void
            {
                fileRef = new FileReferenceLoadExample();
                addElement(fileRef);
            }
            
        ]]>
    </fx:Script>
    
    <s:VGroup width="450" height="230" verticalCenter="0" horizontalCenter="0" horizontalAlign="center" verticalAlign="middle">
        <s:Button label="載入資料" click="btn_clickHandler(event)"/>
    </s:VGroup>
</s:Application>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.