2011-06-27 2 views
1

私はTextAreaとDataGridを持っています。私はDataGridにディレクトリ内のテキストファイルのリストを設定しました。今度は、選択したファイルをTextAreaにロードしようとしています。リストからファイルを選択するときにnullポインタ例外が発生します。これは、私が正しくアクセスしていないことを示しています...私は思っています。フレックス - リストからTextAreaにテキストファイルをロードしようとしています

<s:TextArea id="mainTextField" x="0" y="0" width="730" height="523" 
        editable="true" enabled="true"/> 
     <s:DataGrid id="list" x="730" y="0" width="294" height="523" dataProvider="{files}" gridClick="listHandler(event)"> 
      <s:columns> 
       <s:ArrayList> 
        <s:GridColumn dataField="name" headerText="Filename"/>  
       </s:ArrayList> 
       </s:columns> 

     </s:DataGrid> 

... 

    private var files:ArrayCollection; 

       public var stream:FileStream = new FileStream(); // The FileStream object used for reading and writing the currentFile 
       public var currentFile:File; 

    private function init():void 
       { 

        // Default on start: resolve desktop directory 
        var desktop:File = File.desktopDirectory; 
        // Get desktop directory listing 
        files = new ArrayCollection(desktop.getDirectoryListing()); 
       } 

       protected function listHandler(event:GridEvent):void 
       { 
        currentFile = event.target as File; 
        trace(currentFile.nativePath.toString()); **//Error occurrs here** 
        stream = new FileStream(); 
        stream.openAsync(currentFile, FileMode.READ); 
        stream.addEventListener(Event.COMPLETE, fileReadHandler); 
        stream.addEventListener(IOErrorEvent.IO_ERROR, readIOErrorHandler); 
       } 

       public function fileReadHandler(event:Event):void 
       { 
        var str:String = stream.readUTFBytes(stream.bytesAvailable); 
        stream.close(); 
        var lineEndPattern:RegExp = new RegExp(File.lineEnding, "g"); 
        str = str.replace(lineEndPattern, "\n"); 
        mainTextField.text = str; 
        stream.close(); 
       } 

答えて

2

私はこの上の100%わからないんだけど、私は、行(すなわちファイル)GridClickイベントであるevent.targetないと思います。私は、GridClickイベントがセルを選択するより前だと思った。それはどうもありがとうございました:)秒1だった

curentFile = files.getItemAt(event.rowIndex) as File; 
+0

:問題が解決しない場合は

currentFile = list.selectedItem as File; 

を試してみて、これを試してみてください! – RapsFan1981

関連する問題