air - FileStream openAsync 抛出错误 #1009

标签 air actionscript-3

嗨,我有一个关于 FileStream openAsync 读取文件的问题,我有一个监听器并等待完成

    var file:File = File.applicationStorageDirectory.resolvePath(fName+'.'+EXT);
    var fileStream:FileStream = new FileStream();  


     if (!file.exists) {
              this.dispatchEvent(new AppEvent(AppEvent.DATA, null, false));                                         

     }else {

         fileStream.addEventListener(Event.COMPLETE, fileReadCompleteHandler);
         fileStream.openAsync(file, FileMode.READ);
         fileStream.addEventListener(Event.CLOSE, fileClosedHandler);
         fileStream.addEventListener(IOErrorEvent.IO_ERROR, IOErrorHandler);
     }


     private function fileReadCompleteHandler(event:Event):void {
        var ob:Object;
        var fileStream:FileStream = FileStream(event.currentTarget);

        try {
            ob.source = fileStream.readObject();
        }catch (e:Error) {
            trace('error:' + e.message) 
        }

        fileStream.removeEventListener(Event.COMPLETE, fileReadCompleteHandler);
        fileStream.close(); 

      }

在 fileReadCompleteHandler 上,我收到错误:“错误 #1009:无法访问空对象引用的属性或方法。” 我缺少什么,如何从 openAsync 读取对象?

谢谢

最佳答案

你永远不会初始化对象ob,当然访问空对象的字段会给你#1009:

    var ob:Object;
    var fileStream:FileStream = FileStream(event.currentTarget);

    try {
        ob.source = fileStream.readObject();

您需要:

    var ob:Object = new Object;
    var fileStream:FileStream = FileStream(event.currentTarget);

    try {
        ob.source = fileStream.readObject();

关于air - FileStream openAsync 抛出错误 #1009,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42395884/

相关文章:

actionscript-3 - 可以使用类型引用声明 AS3 向量吗?

apache-flex - FileReference.browse() 在某些 Flash Player 上停止播放

apache-flex - 在 Flex 移动应用程序中从命令行打包时,.apk 文件的大小更大

ios - cacheAsBitmap 对 AIR for iOS 中使用 scrollRect mask 的 Sprite 没有影响

ios - 需要与 iTunes 共享在 ios-air-app 中创建的文档

ios - 使用 Adob​​e AIR 在 iOS 上保存位图

ios - StageWebView、iOS、本地文件

performance - 隐藏动画片段,渲染性能

actionscript-3 - 可以在AS3中保存XML文件

java - FREObject.callMethod 与 FREArray 作为参数错误