经典论坛 » Flash 8 及之前版本 » 有点技术问题想请教大家,关于flash全站的
新手上路
查看个人网站
查看详细资料
TOP
初级会员
蛋蛋
超级版主
我的结构是menu_mc包括about_mc,news_mc,works_mc,contact_mc,每个mc里都包含一个menu_btn 在每个mc(比如about_mc)的最后一帧写代码: stop(); //停止 menu_btn.onRelease=function(){ _root.loadswf("about.swf",262,150);//这个是调用root上的自定义函数loadswf,这个函数下面 //会详细介绍 } Tops:在编程中,路径是一个很重要的概念,特别是在很多swf嵌套的时候,很多错误都是路径引起的,所以尽量少使用_root之类的绝对路径,多用相对路径,比如我上面的代码就可以写成 this._parent._parent.loadswf("about.swf",262,150); 如果你自己都不清楚自己要引用的是哪个路径的话,教你个好办法:在你所要引用的路径的帧上写var path=this;这样要引用这个路径就可以用path.loadswf(...);了:) 下面是main.swf主时间轴上第一帧的代码,其中主要是自定义函数loadswf() this._lockroot = true; //这是为了让所有的_root都指向它 fscommand("fullscreen", true); fscommand("allowscale", false); loading_mc._visible=false; //在这里也放置了前面制作的loading_mc //loadswf() function loadswf(url:String,hx:Number,hy:Number){ //自定义函数loadswf,hx为_x值,hy为_y值 if(container!=undefined){ //如果在加载前,已经加载了另一个swf的话,需先 my_mcl.unloadClip(container); //卸载它 } var my_mcl=new MovieClipLoader(); //这个和前面的代码很相似,规范点的话,应该把 var mcllistener=new Object(); //它进行封装的 var container=this.createEmptyMovieClip("container", this.getNextHighestDepth()); mcllistener.onLoadStart=function(){ loading_mc._visible=true; loading_mc.loading_txt.text="00.00"; } mcllistener.onLoadProgress=function(target, bytesLoaded, bytesTotal){ var loaded=100*bytesLoaded/bytesTotal; loading_mc.loading_txt.text=loaded.toString().slice(0,5); loading_mc.loading_txt._y=50-loaded/2; } mcllistener.onLoadComplete=function(){ loading_mc._visible=false; } mcllistener.onLoadInit = function(target){ target._x=hx; //定义加载的target的x和y坐标 target._y=hy; } my_mcl.addListener(mcllistener); my_mcl.loadClip(url,container); }
flash023
版主