0

Flash プロジェクトのプロパティをデスクトップ用の AIR 3.4 と ActionScript 3.0 に設定しています...

ユーザーがローカル ドライブからファイル (csv) を選択するためのボタンを作成しました。次に、ファイルオブジェクトの文字列値を取得できるようにしたいのですが、方法がわかりません...

これが私がこれまでに持っているものです:

BTN_CSV.addEventListener(MouseEvent.CLICK, getCSV);

var myFile:File = new File();

function getCSV(e:MouseEvent):void {
    var docFilter:FileFilter = new FileFilter("Documents", "*.csv");

    myFile.browse([docFilter]);
    myFile.addEventListener(Event.COMPLETE, completeHandler);
}


function completeHandler(event:Event) {
    var csvData = myFile.nativePath;
    csvData = csvData.data.split("\n");

    parseCSV(csvData);
}

エラー 1061 が表示されます: 未定義の可能性があるメソッドへの呼び出しが、静的型 flash.utils: ByteArray の参照を介して分割されました。ファイルobjのファイルパスを取得する方法がわかりません...

4

1 に答える 1

0

ファイル クラスは、基本的に、必要なファイルへの単なるポインターです。
FileStream クラスに追加するだけで、コードはほぼ完成です。 ソース

import flash.filesystem.*;
import flash.events.Event;

var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.COMPLETE, fileCompleteHandler)
fileStream.openAsync(file, FileMode.READ);

function fileCompleteHandler(event:Event):void {
    var str:String = fileStream.readMultiByte(fileStream.bytesAvailable, File.systemCharset);
    trace(str);
    fileStream.close();
}

[編集]

import flash.events.Event;
import flash.filesystem.File
import flash.filesystem.FileStream
import flash.filesystem.FileMode

var file:File =File.documentsDirectory;
file.addEventListener(Event.SELECT,onSelect)
file.browse()


function onSelect(event:Event):void{
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.READ);
    var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
    trace(str);   
}
于 2012-11-06T20:43:03.263 に答える