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();
}
:問題が解決しない場合は
を試してみて、これを試してみてください! – RapsFan1981