|
楼主 |
发表于 2003-9-10 23:29:16
|
显示全部楼层
第五讲:控制影片属性
过了个周末,又和大家见面了:)
新的星期,新的开始。
从今天以后的学习将不再是单纯的枯燥乏味了,你学完今天的,你应该可以体会一点点快乐了。因为控制影片属性是很有趣的事情。
我们先来认识和影片的属性,我只讲今天用到,其他的根据英文的意思也能够明白,去看看资料是个不错的注意。
_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,请听从建议。
以后熟悉之后再用第二中方法。
下面我们看例题吧,请先下载文件打开:http://www.flashsun.com/bbs/attachment.php?s=&postid=309675
场景中有一个甲克虫的影片,名字为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影片的纵坐标。
第六讲(1):复制影片duplicateMovieClip
前边的五节课是基础,不过不全,但我想入门是够了,以后的提高还是要你自己加油才行:) 以后的讲解里面如果出现的基础中没有提到,我会在过程中解释清楚,如果有漏掉的也请及时提出。在讲这一讲的时候我已经相信你前面的都搞懂了,如果还没有:(,抱歉请复习,做完留的练习。
废话少说,我们开始今天的内容;
duplicateMovieClip是做AS特效中常用到的,作用是复制影片。可以说80%的特效里面都有它,常见的幻影,下雨,下雪,雷电,文本打字,跟随…………,太多太多。鉴于它的重要,我会分三次讲,加强记忆,让你能够基本上学会运用。
下面先来看看它的格式:
duplicateMovieClip(target, newname, depth); //target你要复制的影片名称,newname看英文意思就知道了复制出来的影片赋予它新的名字,depth深度复制出来的影片的层深,这个以后我详细讲,简单的来说就是数小的层放在大的层上面,1层在2层的上面,不理解也没有关系,它目前不会影响我们。
就这点内容。517210你太夸大它了吧?也许吧!
今天的例题是一个幻影,我觉得还算好看吧。(不好意思自己夸自己:))
请先下载文件打开,我们一起来看。http://www.flashsun.net/bbs/attachment.php?s=&postid=310074
按ctrl+l 打开库,里面有两个影片,square,mc.
先看square里面就是一个简单的兰色矩形。
再打开mc来看,它是把square拖进去做的一连串动画,呵呵,也很简单。
好了,回到主场景,我们看看都有什么。
在第一层把mc拖进来命名mc并且拖成两帧。
在看第二层的代码,两帧上都有,我们看第一帧先:
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属性吗,用他们控制复制影片的坐标
第六讲(2):duplicateMovieClip做下雨的效果
今天是教师节,好想休息呀,可我不是教师 :(
好了啦,不要影响心情了,今天的学习将是轻松快乐的,能把学到知识运用是件快乐的事,不是吗?
进入正题,做下雨特效的思路是这样的,先做一滴雨的效果(放心这个简单的不得了),然后复制一定数量的雨滴,就出现了许多雨了.需要说明的一点就是利用影片的坐标属性让复制出来的雨滴从不同的地方落下,这样就显得杂乱,真实了.要做到这一点,我们要讲一点内容那就是random();
random(),建议这样用最好Math.random()符合最新版本的习惯.它的作用是获取0.0,1.0之间的随即数.如果这样写.Math.random(n),就是获取0到n之间的随机数.
好了,下载今天的例题,打开欣赏一下.呵呵,我又开始臭美了.http://www.flashsun.net/bbs/attachment.php?s=&postid=310416
先看库里面,有一个rain影片,那就是一滴雨的效果.把场景缩小到25%观看,这样容易看全貌,不难做的,做好这个影片之后把他拉入场景中,并且命名为rain.
然后新建一层用来写代码,先看第一帧:
i=i+1; //让i加1
duplicateMovieClip(rain,"rain" add i,i); //复制影片rain,复制的名字raini,深度i,还用细讲吗?
_root["rain" add i]._x=random(500); //取0----500之间的随机数,然后把它赋给复制出来的影片raini的横坐标_x.
_root["rain" add i]._y=random(300)+rain._y; //取0----300之间的随机数,然后加上第一滴影片的纵坐标.把它赋给复制出来的影片raini的纵坐标_y.
顺便说一下,场景左上角的坐标为(0,0),越向右下,坐标值越大.自己想象复制雨滴出现的区域是什么?如果想不通,请随时提问.
再看看另一帧上的代码:
if(i<200){ //熟悉的条件语句.
gotoAndPlay(1); 如果i<200,也就是复制的雨滴
}else{ 还不够200,那么播放第一帧.
stop(); 如果够200了,就停止当前帧,
} 也就停止了复制.
通过今天的学习,是不是对复制影片了解的深一点了呢?
下面看今天的作业:我做的这个下雨效果不够丰富,简单的来说,没有做完,今天的作业就是回去自己把它补充完整.下雨,雨滴有大,中小,三种雨滴的速度不同,倾斜程度也不同,小雨滴的倾斜大,大的自然是倾斜小.我只做的小雨.
提示:要做三种雨滴大,中,小,拉入场景,命名不同,对三种雨滴都要复制,所以要连续写三个复制语句. |
|