Actionscript 3 未激发FileStream事件

Actionscript 3 未激发FileStream事件,actionscript-3,air,Actionscript 3,Air,为了保存和加载角色对象,我正在使用File Stream in AIR,它被定位为iPad应用程序 Event.complete未启动,IOErrorEvent有时启动,我不知所措 字符类 谢谢 -动画8几件事: 不要在其他网站上发布你的代码。把它直接贴在问题上。这将确保只要StackOverflow存在,代码就可以使用,而Pastebin可能会在明天消失,从而使这个问题在存档中变得无用 在AS3中,所有对象(包括函数)名称都应该是小写的,类名应该是大写的,常量应该是大写的,下划线应该是分隔的,

为了保存和加载角色对象,我正在使用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()
    是异步的)

    您应该阅读。

    一些内容:

  • 不要在其他网站上发布你的代码。直接在问题中发布。这将确保代码在StackOverflow存在的时间内可用,而Pastebin可能会在明天消失,从而使此问题在存档中无用
  • 在AS3中,所有对象(包括函数)的名称都应该是小写的,类名应该是大写的,常量应该是大写的,下划线应该是分隔的,包名应该是全小写的。如果不遵循这些,它不会导致任何错误,但它们是标准的,我们喜欢在这里向devs指出
  • 您必须始终在加载任何对象之前添加事件侦听器(无论是
    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()
    是异步的)

    您应该阅读。

    一些内容:

  • 不要在其他网站上发布你的代码。直接在问题中发布。这将确保代码在StackOverflow存在的时间内可用,而Pastebin可能会在明天消失,从而使此问题在存档中无用
  • 在AS3中,所有对象(包括函数)的名称都应该是小写的,类名应该是大写的,常量应该是大写的,下划线应该是分隔的,包名应该是全小写的。如果不遵循这些,它不会导致任何错误,但它们是标准的,我们喜欢在这里向devs指出
  • 您必须始终在加载任何对象之前添加事件侦听器(无论是
    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()
    是异步的)

    您应该阅读。

    一些内容:

  • 不要把你的代码贴在其他网站上