【问题标题】:as3 access VARIABLE in parent MovieClip or Loader?as3 访问父 MovieClip 或 Loader 中的变量?
【发布时间】:2012-04-30 21:30:53
【问题描述】:

下面是我的代码。这很简单。我只需要获取在 Main Stage 上定义的 var 并让每个外部 swf 都可以访问该 var。

这是不起作用的代码:

在主要 SWF 中:

var ThePath:String;
ThePath = "happy/go/lucky/";

/// 下面的代码是来自上面之前的主要时间线的 A LOADED SWF。 (现在在这里显示完整的代码)

var myMC:MovieClip;
myMC= parent as MovieClip;

trace("Your VAR PATH IS " + myMC.ThePath); /// DOES NOT WORK.

感谢快乐的堆垛机!

更新 4-31-12

简而言之:我需要在主阶段创建一个全局变量,并允许所有其他外部加载的 swf 访问该变量。

【问题讨论】:

    标签: actionscript-3 flash variables global-variables scope


    【解决方案1】:
    var myMC:MovieClip = MovieClip(this.parent.parent);
    myMC.ThePath
    

    您应该使用 camelCase 作为变量定义。

    编辑:

    另一种解决方案是在加载器中加载子 swf 时将对父级的引用(通过设置值,设置引用)传递给子级,然后子级可以引用父级。

    即:

    家长:

    函数 startLoad() { var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRequest(“Child.swf”); mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); mLoader.load(mRequest); }

    函数 onCompleteHandler(loadEvent:Event) { var childMC:MovieClip = loadEvent.currentTarget.content; addChild(childMC:MovieClip); childMC.refToMainSWF = 这个; }

    供参考: http://genaboo.wordpress.com/2008/03/27/as2_vs_as3_root_parent_communicating_between_swfs/

    【讨论】:

    • 如果您找到了答案,请将其作为答案发布。这将帮助其他处于相同情况的人。谢谢。
    • 我的解决方法不是很好。我仍然很想知道这个问题的答案。我的方法最终无效。我需要在主阶段创建一个全局变量,并允许所有其他外部加载的 swf 访问该变量。
    • @iND 你是说我是否找到了答案?我基本上发布了一个答案,以引用“子”电影剪辑的父级的父级来访问该值。老实说,Papa De Beau 的全局变量是一个可靠的选择。不过,孩子不应该知道他们的父母。
    • @DominicTancredi 我认为某条评论在途中被删除了。我实际上是在要求 OP 发布答案。
    【解决方案2】:

    尝试:

    trace("Your VAR PATH IS " + root.ThePath);
    

    【讨论】:

      【解决方案3】:

      创建一个具有静态属性(变量)的类,根据需要导入该类以进行全局访问。见this relevant question

      【讨论】:

        猜你喜欢
        • 2015-03-19
        • 2016-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多