分享

AS4

 昵称7591027 2011-08-28
上节课我们了解了按钮元件语句格式以及对帧的控制、播放、停止等基本动作,本课将要学习电影元件语句格式以及元件属性的控制。

    先了解一个知识,写在按钮上的触发事件和语句也可以应用在电影元件上,而电影元件上的触发事件是专用的,不能应用于按钮元件上,但元件属性是通用的,可以用于控制电影元件,也可以用于控制按钮元件,可以写在电影元件上,也可以写在按钮元件上,也可以写在帧上,帧上写语言是不需要写触发事件的,当播放到此帧时会自动执行。

   (一)电影元件上语句固定格式:

onClipEvent (触发事件) { 
   要执行的语句内容;
   。。。。。。。 ;


   注解:电影元件专用触发事件格式,一个电影元件上可以给多个触发事件,要执行的语句一定要写在大括号内,当电影元件侦听到触发事件时,马上就会执行相应后面大括号内所有语句。

   按钮的触发事件有哪些?

load       该影片片段已载入 
unload     该影片片段被卸载 
enterFrame 播放场景时间轴上帧时以帧频速度(默认1秒12次)反复触发事件执行后面大括号内语句 
mouseMove  鼠标移动到场景任意地方上面
mouseDown  鼠标键在场景任意地方上按下 
mouseUp    鼠标键在场景任意地方上松开 
keyDown    键盘上任意键按下(ENTER键除外) 
keyUp      键盘上任意键弹起(ENTER键除外) 

    各事件可用逗号分隔,当有一事件成立时就执行大括号内语句。 

    注解:以上触发事件和上节课有很大不同,这些触发事件是针对于场景的不是针对电影元件的。比如:mouseDown 鼠标键按下,是指鼠标在场景上任何位置点下去就触发事件,而不是非要在电影元件身上点下鼠标。如果想应于用电影元件身上的触发事件,就要使用上节课学习内容,按钮触发事件也可以直接应用于电影元件上。如:on (press),on (release),on (dragOver)等。但电影元件上的触发事件不能用在按钮上。

    以上语句同样不需要死记硬背拼写,只要能认识就行,可以通过插入使用,如图所示:
按此在新窗口浏览图片
按此在新窗口浏览图片

   (二)电影元件上各种可改属性命令:

_x         中心点所在相对X坐标(象素单位) 
_y         中心点所在相对Y坐标(象素单位) 
_xscale    横向缩放比例,初始为100 
_yscale    纵向缩放比例,初始为100 
_rotation  相对旋转角度(度单位) 
_width     相对显示宽度(象素单位) 
_height    相对显示高度(象素单位) 
_alpha     显示透明度(0~100) 
_visible   是否可见 


    注解:每个命令前的下划线_不能省略,这里的下划线_可以理解成?的意思。

    _alpha和_visible区别,一个是透明了但还存在,比如按钮透明设为0看不到了,但那个位置还可以响应触发事件的,要是设不可见,那就不能响应任何事件了。
 
AS第三课:电影事件和属性控制
本课实例练习:

01)打开FLASH,新建电影元件,起名叫鸡,把素材一导入。再建电影元件,起名叫乐队,把素材二导入。

02)返回场景,把鸡元件拖入,坐标(400,200)。实例名起为:ji,把乐队元件拖入场景中第1帧,坐标(0,225)。实例名起为:yuedui。

03)然后点击场景中的第一帧,给予以下动作语言:

ji.stop();
yuedui.stop();

注解:因为我开头省略了_root也没写this,电脑将默语言作用于所在本地的相对路径。如果不省略而写全了也行,这里本地就是根部因此_root=this,如:_root.ji.stop();或this.ji.stop();在这里效果是一样。

      第一句是场景时间轴上的ji元件停止播放内部时间轴上的帧,这时鸡就不会动了。

      第二句是把乐队元件也停下了不播放其内部时间轴上的帧。

      这些语句因为是直接写在帧上的,所以不需要触发事件,当直接播放到第1帧时会自动被执行。

      还有这次我就一个场景,时间轴上就一帧,所以不用STOP命令,它始终会停在这一帧上。

04)点击鸡元件,给于鸡元件以下动作语言:

on (rollOver) {
play();
}
on (press) {
_x=_x-50;
_alpha=_alpha-10;
}
on (release) {
_y=_y-30;
}
on (dragOver) {
stop();
_x=400;
_y=200;
_alpha=100;
}

注解:以上语句都没注明路径,则默认为针对当前位置,也就是鸡元件属性控制,第一段事件是鼠标移到鸡元件上,鸡元件将自动播放。

      第二段事件是在鸡元件上按下左键,鸡元件的X坐标值自动用当前值去减去50以此来改变鸡元件X坐标位置。并且把当前透明度的值减去10。

      第三段事件是在鸡元件身上松开鼠标键时Y坐标也自动减30。其实前三段事件可以写到一个事件里的,我分成三段写主要还是利用鼠标不同操作来区分各属性的变化。

      最后一段事件是当鼠标在鸡元件身上按下不松开移出鸡元件区域后仍然不松开再移入鸡元件后,触发下面事件:停止播放鸡元件内部时间轴,把鸡元件的X和Y坐标复位成(400,200)并将鸡元件透明度恢复为100(不透明)。

      这里有个特殊操作,如果在鸡元件身上点下鼠标,而移出后再松开,这样就造成鸡只会改变X坐标,Y坐标不变。因为没在它身上产生松开鼠标的操作。

05)点击乐队元件,给于乐队元件以下动作语言:

onClipEvent (enterFrame) {
_xscale=_xscale-1;
_yscale=_yscale-1;
_rotation=_rotation-5;
}
onClipEvent (keyDown) {
_xscale=100;
_yscale=100;
_rotation=0;
_root.ji._visible=false;
}
onClipEvent (keyUp) {
_root.ji._visible=true;
}

注解:第一段事件是当动画在播放时,以帧频12为速度,也就是1秒12次运行后面大括号内的语句,分别是横向和纵向的缩放减一,也就是说从100%到99%到98%到97%。。。一秒后(12次运行就等于减了12次的一)就到了88%,一直到0,然后出现-1%,-2%一直到负无穷大。这里要说明的是,缩放值后面直接给数字就等于是百分比的数字,请不要加上%变成取模了。第二要说的是负值等正值,也就是说当减成负值后,它又以1秒加12的速度在变大,超过-100%时也不会停下来,继续变大。并且以元件内部编辑区的中心点为旋转中心做减5度旋转,这是逆时针转的,如果加5就是顺时针转的。1秒12次,12*5=60,也就是一秒60度,由此算出6秒完成旋转一圈。

      第二段事件是指按下键盘上任意键后,触发后面大括号内的语句被执行,分别是横向和纵向缩放复位成100%,旋转角度复位为0度,并且把场景上实例名叫JI的元件设为不可见。

      第三段事件是指松开刚才按上键盘上任意键后,触发后面大括号内的语句被执行,这里面只有一句话就是让场景上实例名叫JI的元件变得可见。(注意:true和false是逻辑真假,经常会用到)

      如果要用别的键来控制就要用上节课学内容来触发,比如我想改成按ENTER键控制,就写成on (release, keyPress "<Enter>")来触发事件,今天所学的触发事件,我只应用到两个,其它都可以用上节课触发来代替,但有一个随帧频播放而自动触发enterFrame(这个最常用,按钮上没有类似功能,只有电影元件才能应用)。


测试效果:
播放全屏播放   
http://upload./bbs/upfile/2007/12/20/2007122022462389my8.swf

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多