现在的位置: 首页 > 综合 > 正文

flash中loadMovie时慎用onLoad

2012年10月29日 ⁄ 综合 ⁄ 共 2125字 ⁄ 字号 评论关闭

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内容。

抱歉!评论已关闭.