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