話說今天製作FLASH網站時候出現一個狀況…

A.SWF在本地電腦中,B.swf也是。

A這個SWF裏面有透明MC, 我給他設定外部載入SWF,loadMovie(『b.swf』,_root.b_mv);

B這個SWF裏面就一個按鈕,上面的代碼是
loadMovie(『sh_bg/c.swf』,_root.c_mc);

結果是C不能載入到A中,但是在測試B.SWF是可以讀到且開啟,但是到了A.SWF結果讓我很意外,什麼都很正常,就是聯結到C.SWF沒有作用了!!@@』…

原本以為哪邊有出錯了…..

按F1看了一下loadMovie這個的說明,說是衝突到了,解決辦法是基於 SWF 文件的原始域,在各 SWF 檔之間使用腳本受到限制。使用 System.security.allowDomain() 方法可調整這些限制。
又去查 System.security.allowDomain() ,發現加了這句代碼還是不行。真是氣死人….

看來得用GOOGLE大神的神力了,找到擊敗中華隊的中國同胞們的解決方法了

知道是什麼原因了,我之前對this._lockroot=true;的理解有誤,因為以前按鈕寫的路徑都只能加了this._lockroot=true才有用,現在寫的不一樣,所以加了這句代碼按鈕反而還不起作用了,呵呵。
MC載入外部影片時需要注意的問題
在主場景中新建一個空的 MC,把外部影片導入到這個 MC 裏,例如這個 MC 名字為 testMC,載入的代碼為:testMC.loadMovie(『外部影片』);
原則上,此時,這個外部 SWF 裏的代碼要根據主場景來修改,就是說這個外部 SWF 相當於已經是主場景中的一個元件“testMC”,如果這個外部 SWF 中有 _root ,那麼:
原來的代碼:_root…..
要改成類似:_root.testMC…..
還有一種方法就是改成相對路徑,用 _parent 來實現。
但是這些都較為煩瑣,事實上,我們只需在“testMC”的第一幀寫上“this._lockroot=true;”就行了。也可以寫在“testMC” 的外部,寫法類似這樣:“testMC._lockroot=true;”它將確保外部影片在被載入之後,其 _root 仍然指向其本身,而不會受載入後主影片的影響。

後來我就去A.swf的空白mc內的第一格關鍵影格鍵入this._lockroot=true;

可以了耶!!!有種死灰復燃的感覺…好了…繼續拼了…..:p

您可以延伸閱讀以下文章