【问题标题】:Weird Instance Behavior When Using Its Class in the Document Class在文档类中使用其类时的奇怪实例行为
【发布时间】:2012-01-26 10:21:43
【问题描述】:

我将尝试尽可能清楚地描述这个问题:

  1. 文档类 (Main.as) 加载一个 SWF 文件并将其放置在舞台上。
  2. SWF 在它的舞台上已经有一个子实例,它有一个自己定义的类 (Child.as)。
  3. 如果我在文档类 (Main.as) 中导入 SWF 子类 (Child.as) 的唯一目的是访问静态属性,那么舞台上的子类实例会发疯(即循环运行)不会在编译或运行时抛出任何错误或警告。

注意:单独的子类的导入不会做任何事情(可能是因为它因为不被使用而被丢弃),但实际上在公共文档类中的任何地方提到该类都会触发子实例在阶段。

为了让自己清楚,子实例工作得很好,只要我不在文档类中以任何方式使用它的类,就没有任何问题。

我的问题:你知道什么会让舞台上的子实例表现得好像发生了错误,即使没有错误或警告消息?或者可能的解决方法?

【问题讨论】:

    标签: actionscript-3 class instance


    【解决方案1】:

    尽量不要导入类并让它通过(一旦加载了 swf)

    myLoader.contentLoaderInfo.applicationDomain.getDefinition("Child").STATIC_PROPERTY
    

    我同意,这不是一个很好的答案,而是一种解决方法。如果有人找到这个问题的真正答案,我会很高兴。

    【讨论】:

    • 我在帖子中没有提到,但是我使用 BulkLoader 加载了 SWF 文件,然后将 MovieClip 检索到一个名为 MC_v1_main_preloader_swf 的变量中,然后我按照您告诉我的操作:MC_v1_main_preloader_swf.loaderInfo.applicationDomain .getDefinition("DefinitionPath").STATIC_PROPERTY 并且它起作用了。谢谢!
    • 好的,我找到了问题所在。在子类本身之前使用子类会导致子时间线上的停止方法被忽略,因为我没有将这些方法包含在类中,但编译器会包含这些方法。所以手动添加停止方法可以解决问题。
    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多