弗林德斯大学语言课程:flash问题 第八行是什么意思

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 04:09:12
//图片数量
var num = 20;
//间距
var gap = 10;
//滚动速度
var scrollSpeed = 2;
//
var picDupIndex = 0;
//装载图片的Mc
_root.createEmptyMovieClip("loader", 1);
//将图片放到里面
for (var i = 0; i<num; i++) {
//复制图片Mc
loader.attachMovie("hcs", "pic"+i, i);
//引用
var mc = loader["pic"+i];
//跳到对应的图片
mc.gotoAndStop(i+1);
//位置
mc._x = i*(mc._width+gap);
//纪录自己的图片号
mc.i = i;
//设置一个变量,用来判断是否可以复制
mc.dup = false;
//定义移动事件
mc.onEnterFrame = function() {
//按照速度移动
this._x -= scrollSpeed;
//如果整个出了边界,就清除掉自己
if (this._x<-this._width) {
this.removeMovieClip();
} else if (this._x<0 && this.dup == false) {
//如果除了边界(不是整个),就在另一边复制一个自己(使用变量dup,来表明只能复制一次)
this.dup = true;
//复制
this.duplicateMovieClip("dup"+picDupIndex, 100+picDupIndex);
//引用
var mc1 = loader["dup"+picDupIndex];
//位置
mc1._x = this._x+(num)*(gap+this._width);
//图片号
mc1.i = this.i;
//不可以再复制了
mc1.dup = false;
mc1.gotoAndStop(this.i+1);
//计数
picDupIndex++;
if (picDupIndex>20) {
picDupIndex = 0;
}
//事件传递过来
mc1.onEnterFrame = this.onEnterFrame;
}
};
}
//位置
loader._x =0;
loader._y =0;
//使用一个遮照
_root.attachMovie("ff", "fff", 1000);
fff._x = loader._x;
fff._y = loader._y;
loader.setMask(fff);

picDupIndex = 0;关于他的一些语句是做什么用的我怎么不明白

这涉及到面象对象中的一些概念,var num = 20;var gap = 10;var scrollSpeed = 2;var picDupIndex = 0;这些都是赋值语句,就是对num、gap等这些变量初使化。
_root.createEmptyMovieClip("loader", 1);这句是创建一个名为"loader"新影片剪辑的实例名称

附1:
对于任何一种编程语言(不管是脚本语言还是可编译的编程语言)来说,一些基本的语法和概念是共通的。比如,几乎任何一种编程语言都有变量、运算符、表达式、语句、函数,以及用于控制程序流程的条件和循环结构等等。
ActionScript也不例外,这些概念一个也不缺。如果你有过其它语言的编程经验的话,则你以往的所有编程知识几乎都可以在ActionScript中继续沿用;如果你没有任何编程经验,那也值得祝贺,因为你又将学习新知识了,而且你还免去了从面向过程的软件开发迁移到面向对象的软件开发的过程中所带来的不习惯和莫名的伤感。
通过前面章中的介绍,你应该已经知道了ActionScript是一种面向对象的编程语言。面向对象的编程意思就是说所有的编程工作都是以“对象”为中心的,程序中的每一段代码都位于某个对象中。
在不同的面向对象的编程语言中“对象”这个词意味着不同的东西,但凡是能够被称为对象的东西,大都具有一些共同的特征。比如,对象通常都具有属性和方法。一个人就可以被看作是一个对象,这个对象具有肤色、身高、体重、国籍等属性,具有走路、撒腿就跑、喝水、吃饭等方法。属性描述了对象的某个方面的特征,而方法使得对象可以做某些事情。
在面向对象的编程中,“事件”这个概念是至关重要的,一个用面向对象的编程语言开发的程序只能是在发生了某些事件的情况下才能有所举动。如果没有任何事件在这个程序中发生,则这个程序就会一动不动,完全静止。在以一个人作为对象的例子中,这个人路遇恶狗而被恶狗撵就可以被看作是一个事件,当这个不幸的事件发生时,这个人就可以调用他的“撒腿就跑”这个方法来作为对这个事件的响应。
ActionScript这个脚本语言是Flash专用的,因此,在ActionScript中,“对象”指的就是某个影片剪辑元件的实例、某个文本对象、某个按钮元件的实例等等,而“事件”可以是某个按钮元件的实例被按下、某个影片剪辑元件的实例的播放到达了某一帧等等。
你可以在这些事件中编写好要执行的代码,这样,当这些事件发生时,这些代码就会被执行,来完成你希望完成的任务或工作。如此这般,交互就在你的Flash电影中诞生了。

附2:
MovieClip.createEmptyMovieClip()
可用性
Flash Player 6。

用法
my_mc.createEmptyMovieClip(instanceName, depth)

参数
instanceName 标识新影片剪辑的实例名称的字符串。

depth 指定新影片剪辑的深度的整数。

返回
对新创建的影片剪辑的引用。

说明
方法;创建作为现有影片剪辑子级的空影片剪辑。该方法的行为类似于 attachMovie() 方法,但是不必为新的影片剪辑提供外部链接名称。新创建的空影片剪辑的注册点为左上角。如果缺少任意一个参数,则该方法将失败。
attachMovie( idName, newName, depth , initObject)
参数介绍:
idName:字符串值,表示要加载的物件在物件库里的连接名称(linkage name)。
newName:字符串值,表示 MovieClip 物件被加载后的引用名称。
depth:数字值,表示被加载 MovieClip 物件的层深。
initObject:自定义对象,表示为将要加载的 MovieClip 设置初始化数据。(可选)

var picDupIndex = 0;
初始化变量
picDupIndex在此程序中的作用是
1。 用以表示MC实例化后的变量(如:dup1 , 1为picDupIndex所对应的值)

2. 表示MC实例化后所在层的深度