假设我在movieclip上的ActionScript面板中有一个变量
parent_mc:
var ispaused:Boolean = false;
在此MovieClip内部是另一个MovieClip,其ActionScript
child_mc:
if (!ispaused)
{ gotoAndPlay(1); }
在儿童MovieClip中处理ActionScript时,我该如何要求父母的变量?
ahem ...
if (parent.ispaused) // ...
,如果由于编译时间类型铸造而无法工作:
if (parent["ispaused"]) // ...
或者您可以打字:
if ((parent as ParentClass).ispaused) // ...
我实际上发现这是调用父母的变量的正确方法,从字面上看,MovieClip(root)并不改变。
if ((MovieClip(root).entervariablename))
{ dothisaction; }
或修改变量值
if (thistrigger)
{ (MovieClip(root).entervariablename) = desiredvalue; }
在parent movieclip时间轴上(我想您的代码已放在上面):
var isPaused:Boolean=false;
function doSometing():void{
trace("function doSomething called in parent MovieClip");
}
在儿童MovieClip时间轴上:
import flash.display.MovieClip;
var parentClip:MovieClip = (parent as MovieClip);
var parentPaused:Boolean = parentClip.isPaused;
if (!parentPaused){
trace("parent clip isPaused = " + parentPaused);
parentClip.doSometing();
// Do what you want here
}
输出:
父夹iSpaused = false
函数dosomething在父级movieclip