FileReference を使用してユーザーからファイルを読み取りました。選択したファイルの内容で初期化したい変数があります。セッターとゲッターを使用して Model クラスを作成します。ファイルの終わりに達したことを示すエラーがスローされるため、これは実際には機能しません。ファイルで変数を更新するにはどうすればよいですか? ありがとうございました。
public class Main extends Sprite
{
public var fr:FileReference;
private var _model:Model;
private var button:Sprite;
public function Main():void
{
_model = new Model();
_model.addEventListener(Model.VALUE_CHANGED, fileLoaded);
trace(_model.getVariable());
}
protected function loadClicked(e:Event):void
{
fr = new FileReference();
fr.addEventListener(Event.SELECT, fileSelected);
fr.browse([new FileFilter("JSON Files (*.json)", "*.json")]);
}
public function fileSelected(event:Event):void
{
fr.addEventListener(Event.COMPLETE, fileLoaded);
fr.load();
}
public function fileLoaded(event:Event):void
{
try
{
var content:ByteArray = fr.data;
_model.setVariable(content.readUTFBytes(content.length));
}
catch (e:Error)
{
trace("Error");
}
}
}
public class Model extends EventDispatcher
{
public static const VALUE_CHANGED:String = "value_changed";
private var variable:String;
public function Model() :void
{
}
public function setVariable(newVar:String):void
{
variable = newVar;
this.dispatchEvent(new Event(Model.VALUE_CHANGED));
}
public function getVariable():String {
return variable;
}
}