as3在父MovieClip或Loader中访问VARIABLE?

时间:2012-04-30 21:30:54

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

以下是我的代码。这很简单。我只需要在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访问该变量。

3 个答案:

答案 0 :(得分:3)

var myMC:MovieClip = MovieClip(this.parent.parent);
myMC.ThePath

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

修改

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

即:

<强>父:

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

function onCompleteHandler(loadEvent:Event) {     var childMC:MovieClip = loadEvent.currentTarget.content;     的addChild(childMC:影片剪辑);     childMC.refToMainSWF = this; }

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

答案 1 :(得分:0)

尝试:

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

答案 2 :(得分:0)

创建一个具有静态属性(变量)的类,根据需要导入全局访问。请参阅this relevant question