flash中loadMovie時慎用onLoad

來源:互聯網
上載者:User

flash開發時遇到這樣一個問題,貼了好多論壇,沒有人回答,不知道是問的水平低還是什麼原因,最後自己琢磨出來了。
問題如下:
---------------------------------------------------------------------------
在檔案夾中存在b.flv,在b.flv所在路徑中,建立c.fla,c.fla中建立一個as代碼控制的視頻元件,再建立影片剪輯Player,將視頻元件執行個體拖入Player舞台。建立圖層,在該圖層第一幀寫入代碼如下:
var vnc:NetConnection=new NetConnection();
vnc.connect(null);
var vns:NetStream=new NetStream(vnc);

vns.onStatus=function(infoObj:Object){
trace(infoObj["level"]+":"+infoObj["code"]);
}

function f_play(){
try{
video.attachVideo(vns);
video.setBufferTime(3);
vns.play("b.flv");
}catch(e){
throw e;
}
}
將影片剪輯Player拖入情境舞台中,執行個體名為mc_player。
在主時間軸第一幀中寫入代碼如下:
this.onLoad=function(){
mc_player.f_play();
}
測試影片,能夠正常顯示b.flv內容。
將c.fla發布為c.swf。
----------------------------------------------------------------------------------
在在b.flv所在路徑中,建立a.fla。
在a.fla中建立影片剪輯MC,拖入到情境舞台中,執行個體名為mc。
在第一幀中寫入代碼如下:
mc.loadMovie("c.swf");
測試影片,發現沒有顯示b.flv內容。
---------------------------------------------------------------------------------
各位大蝦,這是什麼原因啊?
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
還是自己找出了,是onLoad的原因。
修正後如下:

在檔案夾中存在b.flv,在b.flv所在路徑中,建立c.fla,c.fla中建立一個as代碼控制的視頻元件,再建立影片剪輯Player,將視頻元件執行個體拖入Player舞台。建立圖層,在該圖層第一幀寫入代碼如下:
var vnc:NetConnection=new NetConnection();
vnc.connect(null);
var vns:NetStream=new NetStream(vnc);

vns.onStatus=function(infoObj:Object){
    trace(infoObj["level"]+":"+infoObj["code"]);
}

function f_play(){
    try{
        video.attachVideo(vns);
        video.setBufferTime(3);
        vns.play("b.flv");
    }catch(e){
        throw e;
    }
}
f_play();

將影片剪輯Player拖入情境舞台中,執行個體名為mc_player。
測試影片,能夠正常顯示b.flv內容。
將c.fla發布為c.swf。
----------------------------------------------------------------------------------
在在b.flv所在路徑中,建立a.fla。
在a.fla中建立影片剪輯MC,拖入到情境舞台中,執行個體名為mc。
在第一幀中寫入代碼如下:
var lsnr:Object=new Object();
lsnr.onLoadComplete =function(evtObj:Object){
 trace("complete");
}
var loader:MovieClipLoader=new MovieClipLoader();
loader.addListener(lsnr);
var mc:MovieClip=createEmptyMovieClip("mc", getNextHighestDepth());
loader.loadClip("d.swf",mc);
測試影片,正常顯示顯示b.flv內容。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.