2013-02-26 76 views
0

我試圖讓孩子讀取父母的變量,反之亦然。 ,家長有沒有問題,閱讀孩子的增值經銷商,但由於某些原因,孩子只能得到「未定義」作爲一個答案......(而不是「456」)來自父swf的as3訪問變量

父腳本

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爲空 和影片剪輯(parent.parent)只吐出一個錯誤

我不知道什麼是錯...... 我錯過了什麼?

回答

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. 
} 
+0

可悲的是,我只得到了以下錯誤: 「的ReferenceError:錯誤#1069:房產masterVar不使用flash.display.Loader有發現是沒有默認值。 \t at test1_fla :: MainTimeline/frame1()「 我是否執行它錯?_? – 2013-02-26 11:34:46

+0

請看編輯答案 – strah 2013-02-26 11:39:49

+0

非常感謝你,不知道我必須把它放在eventlistener! 現在完美運作 – 2013-02-26 11:48:49