【问题标题】:How can you determine if swf is played standalone or loaded in other swf?如何确定 swf 是独立播放还是加载到其他 swf 中?
【发布时间】:2012-04-03 05:14:25
【问题描述】:

我有两个瑞士法郎。一个某种“节目”和一个充当“节目”加载程序的“菜单”。 “show” swf 可以单独运行,也可以通过“菜单”加载。

有没有办法确定“节目”是独立运行还是加载到“菜单”中?

一种解决方案是让“菜单”Loader 对象在加载的“节目”上设置一个变量,例如myLoader.content.thisIsFromMenu = true;,然后检查“节目”,如果这样的变量存在并且为真。但我想知道,如果有任何更通用的方式,“节目”不需要知道任何关于“菜单”的信息来确定它是加载到 swf 中还是自己播放?

【问题讨论】:

    标签: actionscript-3 flash loader


    【解决方案1】:
    if (root.parent && root.parent == stage) {
      // Standalone
    }
    

    【讨论】:

    • 确实正确。检查parent 而不是root.parent 一定是在情况下工作的,但可能并不总是正确的。因此你的答案是正确的。
    【解决方案2】:

    在加载swf的构造函数中:

    if (stage && parent == stage) {/*I'm standalone*/}

    或者if (parent is Loader) 也可以工作(反之亦然)

    【讨论】:

    • 感谢您的回答,我会在项目中尝试第二种方法。
    • 你必须检查 root.parent,而不仅仅是 parent。
    【解决方案3】:
    if (root.name == "root1") //standalone
    

    【讨论】:

    • 具体如何使用?我会为myloader.content 分配一个名称并在加载的“节目”中检查该名称吗?
    • 名称是自动分配的
    • 哦,所以我刚试过,我不知道这个。 Flash 确实将名称“root1”分配给当前正在运行的电影。很高兴知道,当然也是一个有效的选择。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2011-03-29
    相关资源
    最近更新 更多