Actionscript 3 未激发FileStream事件
为了保存和加载角色对象,我正在使用File Stream in AIR,它被定位为iPad应用程序 Event.complete未启动,IOErrorEvent有时启动,我不知所措 字符类 谢谢 -动画8几件事:Actionscript 3 未激发FileStream事件,actionscript-3,air,Actionscript 3,Air,为了保存和加载角色对象,我正在使用File Stream in AIR,它被定位为iPad应用程序 Event.complete未启动,IOErrorEvent有时启动,我不知所措 字符类 谢谢 -动画8几件事: 不要在其他网站上发布你的代码。把它直接贴在问题上。这将确保只要StackOverflow存在,代码就可以使用,而Pastebin可能会在明天消失,从而使这个问题在存档中变得无用 在AS3中,所有对象(包括函数)名称都应该是小写的,类名应该是大写的,常量应该是大写的,下划线应该是分隔的,
urloader
、Loader
、FileStream
,等等)。基本上,在添加事件侦听器之前完成加载的可能性很小,这意味着事件侦听器甚至不会启动(非常罕见,但我见过磁盘读取时会发生这种情况)。此外,在加载完成之前,不要调用FileStream.close()
。我认为,后者是您的问题。您在连接完成加载之前关闭了连接fsR.close()
fsR.openAsync(fR, FileMode.READ);
fsR.addEventListener(Event.COMPLETE, LoadExistingCharacterObject);
fsR.addEventListener(IOErrorEvent.IO_ERROR, CreateNewCharacterObject);
fsR.close();
并将其添加到处理程序中,LoadExistingCharacterObject
和CreateNewCharacterObject
。此外,您需要在SaveCharacter
中执行相同的操作。任何时候使用FileStream.openAsync()
,在加载完成或出错之前,您不能关闭
流。如果使用FileStream.open()
,您可以在加载完成后立即关闭它,因为应用程序执行会在加载完成时停止(FileStream.open()
是一个同步操作,FileStream.openAsync()
是异步的)
您应该阅读。一些内容:
urloader
、Loader
、FileStream
,等等)。基本上,在添加事件侦听器之前完成加载的可能性很小,这意味着事件侦听器甚至不会启动(非常罕见,但我见过磁盘读取时会发生这种情况)。此外,在加载完成之前,不要调用FileStream.close()
。我认为,后者是您的问题。您在连接完成加载之前关闭了连接fsR.close()
fsR.openAsync(fR, FileMode.READ);
fsR.addEventListener(Event.COMPLETE, LoadExistingCharacterObject);
fsR.addEventListener(IOErrorEvent.IO_ERROR, CreateNewCharacterObject);
fsR.close();
并将其添加到处理程序中,LoadExistingCharacterObject
和CreateNewCharacterObject
。此外,您需要在SaveCharacter
中执行相同的操作。任何时候使用FileStream.openAsync()
,在加载完成或出错之前,您不能关闭
流。如果使用FileStream.open()
,您可以在加载完成后立即关闭它,因为应用程序执行会在加载完成时停止(FileStream.open()
是一个同步操作,FileStream.openAsync()
是异步的)
您应该阅读。一些内容:
urloader
、Loader
、FileStream
,等等)。基本上,在添加事件侦听器之前完成加载的可能性很小,这意味着事件侦听器甚至不会启动(非常罕见,但我见过磁盘读取时会发生这种情况)。此外,在加载完成之前,不要调用FileStream.close()
。我认为,后者是您的问题。您在连接完成加载之前关闭了连接fsR.close()
fsR.openAsync(fR, FileMode.READ);
fsR.addEventListener(Event.COMPLETE, LoadExistingCharacterObject);
fsR.addEventListener(IOErrorEvent.IO_ERROR, CreateNewCharacterObject);
fsR.close();
并将其添加到处理程序中,LoadExistingCharacterObject
和CreateNewCharacterObject
。此外,您需要在SaveCharacter
中执行相同的操作。任何时候使用FileStream.openAsync()
,在加载完成或出错之前,您不能关闭
流。如果使用FileStream.open()
,您可以在加载完成后立即关闭它,因为应用程序执行会在加载完成时停止(FileStream.open()
是一个同步操作,FileStream.openAsync()
是异步的)
您应该阅读。一些内容: