0

私は、子に親の vars を読み取らせ、その逆をさせようとしています。親は子の変数を問題なく読み取ることができますが、何らかの理由で、子は答えとして「未定義」のみを取得します...(「456」ではなく)

親スクリプト

var mySwf
var masterVar=456
function startLoad() { 
    var myLoader:Loader = new Loader(); 
    var mRequest:URLRequest = new URLRequest("test1.swf"); 
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
    myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
    myLoader.load(mRequest); 
} 

function onCompleteHandler(loadEvent:Event) {
    mySwf=loadEvent.currentTarget.content
    addChild(mySwf);
    trace(mySwf.slaveVar)//123
}

function onProgressHandler(mProgress:ProgressEvent) {
}
startLoad()

Child(test1.swf)脚本

var slaveVar=123

trace(Object(parent))//[object Loader]
trace(Object(parent.parent))//[object Object]
trace(Object(parent.parent).masterVar)//undefined
trace(Object(this.parent.parent).masterVar)//undefined

parent.parent.parent は null で、 MovieClip(parent.parent) はエラーを吐き出すだけです

何が問題なのかわかりません...何か足りないのですか?

4

1 に答える 1

3

これを試して:

子swfの場合:

var theParent:Object;
addEventListener(Event.ADDED_TO_STAGE, onAdded);
function onAdded(e:Event):void
{
    theParent = this.parent as Object
    trace(theParent.masterVar);
    //will work after child swf has been added to the display list of the parent file.
}
于 2013-02-26T11:18:40.517 に答える