話說今天製作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
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
"不能連續兩次loadMovie載入絕對位址的SWF文件??",目前有1則迴響
版主你好:
我在要進行超聯結的按鈕上下語法:
on (press) { loadMovie(『25.swf』,_root.target_mc);}
結果檔案』25.swf』有成功匯進目標_root.target_mc,
但是,原本25.swf的動畫中有些物件會旋轉,
但是匯進來後,這些物件旋轉的功能全部都失效了,
請問您知道是怎麼一回事嗎?
您說的 寫在“testMC” 的外部,寫法類似這樣:“testMC._lockroot=true;
這是什麼意思呢?要寫在哪裡?
發表留言