解決SWF載入報錯問題

2021-05-21 22:53:44 字數 1323 閱讀 2756

解決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...