循环有for循环和do while循环,他们和上节讲的判断if同等重要,对于要多次重复执行的代码是循环存在的根本。它可以让你从复杂的代码中解脱哦:)
好了,我们现在先认识它的结构。
for(init; condition; next){ //init开始记数的初始值;condition是条件,如果条件成立,循环继续,反之呵呵,当然是循环结束了。next就是记数变化的语句了,如果记数不变化,哈哈,会是什么情况?死循环!
statements; //statements;执行代码,我们已经认识过了。
}
理论上的东西总是有点抽象不容易理解,不过没关系,过会结合例题你就会明白了。
我们现在先简单认识一下动态文本——Dynamic Text。在工具栏上点A,这个时候下面的属性框出现的就是文本框的相关属性。具体请各位看有关资料。这里讲动态文本——Dynamic Text 在属性var(中文版应该是:变量)一项里,可以给文本定义变量,这样用AS对文本操作会更加灵活,也是许多文字特效(鼠标跟随,波浪文字等)制作过程的基本步奏。我们以后不会有太长时间就会接触到这些了:) 先有一个初步的认识吧。
基本的东西讲完了,请下载今天的例题吧!
点击浏览该文件请打开文件,不敢相信?这么简单?的确简单 。
第一层,第一帧上放了5个动态文本,随便点一个,看看下面的属性框里面,在var一项是不是有 txtn n=1,2,3,4,5。这就是给动态文本设定的变量。
下面我们们看看怎么利用这些变量给文本赋值:
看第二层的第一帧,一看就知道有代码:),打开看看
for(i=1;i<=5;i++){
_root["txt" add i]=i;
}
现在我来解释一下代码:开始i=1,满足条件i<=5,所以就执行_root["txt" add i]=i;
执行完之后,再执行i++,这样i=2,还是满足条件,所以还执行_root["txt" add i]=i;
直到执行完i=5后,经过i++后i=6了,不满足条件了,循环也就结束了。
不知道我讲的是否明白,自己体会了,随时提问。
我们再来认识_root["txt" add i]=i;
因为文本框在场景中所以我用_root表示路径,如果是在影片中,怎么办呢?这个留给你自己考虑了。
“txt" add i是一个字符串运算,如果i=1运算结果就是txt1
如果i=2运算结果就是txt2
……………………
如果i=5那么结果就是txt5
最后就是今天的作业了:用循环计算1+2+3+4+…………+100,结果要在动态文本框里面显示。
第五讲
点击浏览该文件第五讲:控制影片属性
过了个周末,又和大家见面了:)
新的星期,新的开始。
从今天以后的学习将不再是单纯的枯燥乏味了,你学完今天的,你应该可以体会一点点快乐了。因为控制影片属性是很有趣的事情。
我们先来认识一下影片的属性,我只讲今天用到的,其他的根据英文的意思也能够明白,去看看资料是个不错的主意。
_alpha 影片的透明度变化值(0~100);
_xscale 影片的横向大小,也就是长度;
_yscale 影片的纵向大小,也就是宽度;
_visible 影片的可见性,值为true时,影片可见;值为false时,影片不可见;
下边我们来学习怎么控制这些属性。
控制属性的一个办法就是用:
setProperty(target, property, value) //target:被控制的对象,也就是要控制影片的名称;property:影片的属性,就是刚刚讲的_alpha等;value:影片属性的值。
这个语句的作用就是把值value赋给影片的属性。
另外一个语句:getProperty(instance, property);//instance:影片的名字,property:影片的属性。
这个语句的作用是获取该影片属性的值。
先举个例子:a=getProperty(mc,_alpha) 如果mc的透明度为80,那么a=80;
控制属性的方法之二:
用点语句直接赋值和调用。
举个例子:mc._alpha=40; //让影片的透明度为40;
b=mc._alpha //把影片的透明度值赋给变量 b
强烈建议开始用第一种方法,为了熟悉AS,请听从建议。
以后熟悉之后再用第二种方法。
下面我们看例题吧,请先下载
点击浏览该文件打开:场景中有一个甲克虫的影片,名字为mov.
场景中还有6个按扭,我们看透明度“——”按扭上面的代码;
on(release){
setProperty("mov",_alpha,getProperty(mov,_alpha)-5);//语句刚刚学过,还有印象吗?控制当前影片的透明度,按扭每点一次,透明度减小5。
if(mov._alpha<=0){ //当透明度减小的<0,就让透明度为0
setProperty("mov",_alpha,0);
}
}
看看这一句:setProperty("mov",_alpha,getProperty(mov,_alpha)-5);
是不是有点不习惯?不懂?其实它是这两句的合成。
value=getProperty(mov,_alpha)-5;//影片透明度-5然后把值赋给value
setProperty(mov,_alpha,value);//把value的值赋给mov的透明度属性。
其他按扭上的代码就要靠你自己来理解了,相信自己的能力:)
今天的作业:做一个小球的影片,做四个按扭,点击按扭,影片可以移动,四个按扭控制上,下,左,右。
提示:利用影片属性_x,_y;//_x影片的横坐标;_y影片的纵
第六讲
点击浏览该文件第六讲:复制影片duplicateMovieClip
前边的五节课是AS里最基础的,虽然不全面,但是作为入门是足够了,至于以后的提高,还是要你自己加油才行:) 以后的讲解里面如果出现前面基础中没有提到的内容,我会在过程中解释清楚,如果有漏掉的也请及时提出。在讲这一讲的时候我相信你已经把前面的知识点都搞懂了,如果还没有:(,抱歉,请复习,一定做完留着的练习。
废话少说,我们开始今天的内容。
duplicateMovieClip是做AS特效中常用到的,作用是复制影片。可以说80%的特效里面都有它,常见的幻影,下雨,下雪,雷电,文本打字,跟随…………太多太多。鉴于它的重要,我会分三次讲,加强记忆,让你能够基本上学会运用。
我们首先来看看它的格式:
duplicateMovieClip(target, newname, depth); //target你要复制的影片名称。newname:看英文意思就知道了复制出来的影片赋予它新的名字;depth:深度,复制出来的影片的层深。这个以后我详细讲,简单的来说就是数小的层放在大的层上面,1层在2层的上面,不理解也没有关系,它目前不会影响我们。
就这点内容。517210你太夸大它了吧?也许吧!
今天的例题是一个幻影,我觉得蠢材主任做得很棒哦。(不夸夸他他以后不给我配了:))
请先下载文件打开
点击浏览该文件,我们一起来看。按ctrl+l 打开库,里面有两个影片,square,mc.
先看square里面就是一个简单的兰色矩形。
再打开mc来看,它是把square拖进去做的一连串动画,呵呵,也很简单。
好了,回到主场景,我们看看都有什么。
在第一层把mc拖进来,命名mc,并且拖成两帧(把影片mc拖到一层的第一帧,在第二帧按F5)。
再看第二层的代码,两帧上都有,我们先看第一帧:
i++; //每次播放这一帧,i的值加一
duplicateMovieClip(mc,"mc" add i,i); //这个就是今天的重点了,作用复制影片mc,复制的新影片名字为“mc" add i也就是mci, i是变量,这样可以保证每次复制的影片名字有区别,i是新影片的深度,以后会有详细的解释。
setProperty("mc" add i,_alpha,100-i*15); //上节课的内容,还记得吗。就是让复制出来的影片mc add i mci的透明度为100—i*15让复制出来的影片透明度随名字不同有变化。
好了,看看第二帧上的代码:
if(i<5){ //如果i<5,播放第一帧,i>5停留在这一帧。
gotoAndPlay(1); //作用是为了复制5个影片,不多也不少。
}else{
stop();
}
注意:duplicateMovieClip要和循环判断还有影片属性控制结合才有它存在的意义,它的作用才能很好的发挥。
今天的作业:1。自己独立完成这个例题。
2。自己做一个小球的影片,利用for循环语句,用按扭控制点一下,复制出来10个小球,小球的位置可不要重合了呀,这一点还记得_x,_y属性吗,用他们控制复制影片的坐标。
