flash实例名问题,高手请进!

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:53:54
提个代码有点多的问题,但应该不是很复杂
我用下面的代码生成实例
问题1:这个实例名叫什么名字?
问题2:如果是名字是动态的,我怎么调用它?
问题3:我把代码放到一个剪辑里,再在主场景调用这个剪辑为什么不显示(单独写在主场景中是可以显示的)?
代码如下:
var n:Number = new Number();
var url_array = new Array();
//这里是设置SWF与ASP的相对路径
var path_str:String = "propic/";
function go_func() {
if (n<url_array.length-1) {
n++;
load_func();
} else {
trace("加载完成!");
}
}
//============MCL类===========
var _mcl:MovieClipLoader = new MovieClipLoader();
this.onLoadInit = function(_mc:MovieClip) {
_mc._txt.removeTextField();

go_func();
};
//如果没有下面的代码,就会一个加载出错,导致后面的都不能加载,用这个可以出错时继续向下加载,源文件中我故意少了一个图片,让它出错
this.onLoadError = function(_mc:MovieClip) {
_mc.createTextField("_txt", 200, 20, 10, 60, 30);
_mc._txt.textColor = 0xff0000;
_mc._txt.text = "加载失败!";
go_func();
};
//=========加载进度显示==============

问题1:这个实例名叫什么名字?
加载图片MC的实例是一堆动态产生的实例
this.createEmptyMovieClip("pic_mc"+n, n+100);
从这句可以看出,实例名字叫 pic_mc后面跟一个数字代表第几个,比如pic_mc0,pic_mc1.有几个取决于n<url_array.length-1,也就是url_array这个数组的长度。
还有个动态产生的文本框,用于显示加载进度什么的,名字叫_txt
从这句可以看出mc.createTextField("_txt", 200, 20, 10, 60, 30);

问题2:如果是名字是动态的,我怎么调用它?
你如果想单独调用的话,简单
pic_mc0._x=100,直接可以了,当然你得确保至少一个pic_mc0,也就是url_array里面至少有一个数
你如果想批量定义调用函数,那就复杂了
首先你得确保你的定义语句得发生在你所调用的MC产生之后,
所以定义语句得写再函数load_func()中
this.createEmptyMovieClip("pic_mc"+n, n+100); 之后
比如你要添加一个点击事件可以再上面那句后面写上
this["pic_mc"+n].onPress=function(){
//先得取得一个事件的信息也就是告诉程序哪个mc被按下去了
var a=this.getDepth()-100;
//a就是点下的MC的序数,因为你再产生的时候吧深度调高了100,所以这里减去100,下面要做什么,你自己因该会做了。
}

问题3:我把代码放到一个剪辑里,再在主场景调用这个剪辑为什么不显示(单独写在主场景中是可以显示的)?

你这个剪辑里面有没有一个叫_mc的实例,很多代码都用到了这个实例,你检查下!

自己上网找

我没研究过