解決swf載入報錯問題 —以及利用該錯誤防止盜鏈 收藏
乙個swf載入另乙個swf時,常會報錯,最近研究了主要的報錯情況.
在剖析報錯情況前,先看下我們用的載入**:
as3**
var loadswf:loader = new loader;
loadswf.contentloaderinfo.addeventlistener(event.complete, loadcom)
loadswf.load(new
urlrequest("demo.swf"))
private
function loadcom(event:event):void
報錯情況有以下幾處:
1.顯示物件根目錄錯誤
有些人為圖方便,直接在把loader物件用addchild()新增到舞台上,這是錯誤的,因為有些子swf的程式在文件類中,把parent看成是stage,而直接新增loader物件,子swf中的parent就是loader了,loader相當於另乙個容器,而導致子swf執行不正常.
解決方法:看看上面的載入**,已經是解決方法了,第六行,我們獲得的getswf其實是乙個文件類的例項化,因為文件類必須繼承displayobject的,所以獲取的型別為displayobject是肯定正確的.我們把文件類直接新增到stage中,這樣就保證了與原swf的結構一致.
2.載入進來提示無法訪問空物件引用的屬性或方法.
這是因為子swf還沒有新增到舞台上就呼叫stage了,這時stage是null值,所以提示這個錯誤.
解決方法:在子swf的建構函式中,新增到舞台上再執行**.
as3**
public
function main()else}
private
function init(e:event = null):void
要想防止自己的as編譯好的swf被盜鏈 就是去掉 addeventlistener(event.added_to_stage, init);
那樣別人載入了 就報錯訪問空物件 另一種方法就是給主swf做乙個殼 就是採用巢狀技術(殼swf去load主swf) 這也是各大門戶**普遍採用的方法
你初始化乙個as程式,編譯器就自動的給你分布了初始時的層次 stage—> 文件類(或者是時間軸)—>其他的容器 **形式:
this.stage—>this—>其他的容器
Flash AS3 解決SWF載入報錯問題
乙個swf載入另乙個swf時,常會報錯,最近研究了主要的報錯情況.在剖析報錯情況前,先看下我們用的載入 as3 var loadswf loader new loader loadswf.contentloaderinfo.addeventlistener event.complete,loadco...
載入swf檔案
一 問題起源 使用主程式載入子程式的方法的原因如下 參考 二 使用loader載入swf檔案 xml version 1.0 encoding utf 8 xmlns fx xmlns s library xmlns mx library minwidth 955 minheight 600 cre...
Windows載入redis報錯問題
問題 windows系統載入redis時,輸入以下指令 d redis redis server.exe redis.windows.conf報錯如下 11340 03 jul 09 30 52.283 oo0ooo0ooo0oo redis is starting oo0ooo0ooo0oo 11...