分享

ActionScrip教程

 昵称7591027 2011-08-28
ActionScript是一种编程语言,Flash专用。在学习前我们先把FLASH给整理下,弄清结构、路径、对象等基本常识后再学习有事半功倍之效。本次教学面向学完初中级对FLASH大部分功能已经相当熟悉并对语言有初步的接触和学习愿望的朋友。

    所谓动作语言,就对FLASH说的话,让它按我们说的话去做,当然我们说的中国话它是看不懂的,要学AS语言才能和它交流,就像出国要讲外语和鸟要说鸟一语一样,FLASH只能明白AS语言表达的意思。

    (一)FLASH动画结构和播放顺序:

    一个FLASH动画是由场景、打散图、元件构成,元件又分电影元件,按钮元件,图形元件,每个场景和元件都有自己的时间轴。播放顺序是从第一个场景上主时间轴第1帧放到最后1帧放完后接着下一个场景,全放完后重复播放,在播放到有元件的帧时,同是也会播放元件内部时间轴上所有帧内容。

    注:如果帧上电影元件内部有10帧长度内容,那么在场景上存放这个电影元件的关键帧后面应该保留10帧才能放全。如果保留多了,则电影元件内部时间轴会重复播放,保留少了则没放完就结束了。但场景如果只有1帧是特例,它会停止在这1帧上,这样可了理解等同于保留帧数无限长。

    (二)FLASH动画中语言是在哪里应用:

    在FLASH中,帧、电影元件、按钮元件是可以选定后给于动作语言,而其它对象如图形元件和打散后图都是不可以设置动作语言的也不可以被语言调用和控制的。可加语言对象里其中电影元件和按钮元件是可以设实例名,方便帧上或其它元件上的动作语言调用或控制。由此看在FLASH动画中电影元件是使用最多,最活跃的元素。此外还有动态文本框和输入文本框这两个特殊对象,它们也可以设置实例名用于帧上或元件上语言调用与控制,还可以设置变量,方便语言动态管理它的内容。但这两个对象本身是不可以承载动作语言的。

    对症用药,用在按钮上的触发事件动作如:on (release),就不能用在帧上或元件上,它们不是按钮无法侦听到这个动作一用就出错。同样用在电影元件上触发事件动作如:onClipEvent(enterFrame)不能用在帧上或按钮上。

    注:on (release)是响应释放鼠标左键而产生的事件,也就是当鼠标点按钮松开后就执行后面大括号{}里的语句命令集。至于onClipEvent(enterFrame)事件会随着影片的播放而不断发生,影片每前进一帧,影片剪辑就会触发执行一次enterFrame后面大括号内{}语句命令集。也就是说当主场景中以1秒12帧的速度播放里,在时间轴上的电影元件内部如果有这个语言事件的话,将会以每秒12次的速度反复执行{}内的语句。

    (三)关于路径的认识与正确书写:
    
    下面我绘了一个示意图方便我们了解路径关系,如图所示:
    (路径就是指各个对象的位置,有相对路径和绝对路径,初学者适宜用绝对路径不容易错,繁一点但好理解)

按此在新窗口浏览图片

    点语句(.)容易让初学者感到摸不着头脑,别看它不起眼,用的却非常频繁,它的作用通常两个。第一,它可以用来定位某一个影片剪辑,例如上图中如果在场景一中的帧上写语言来定位AA元件就要写成_root.元件1.AA,这个语句就代表主事件线上实例名为元件1的影片剪辑中实例名为AA的影片剪辑,比较拗口,其实我们如果把这个小点练成“中的”,问题就很清楚了。 还可以用点(.)来设置元件的各种属性,如AA._ALPHA=80;就是把AA元件的透明度设为80%的意思。反过来再看上图,我们若是要在BB元件上写语句来定位调用元件2,应该这样写this._parent._parent._parent.元件2。这就是相对路径的描述,意思是本元件父一级(AA),再父一级(元件1),再父一级(场景_ROOT)下面的元件二。

    注:_root是指当前主场景上的时间轴,this是本地意思,_parent是父一级的意思。可能看到这么多英文有人觉得记不住,没事常看,我只要你们认识就行了,不必要记住每个命令拼写,在实际运用中,都是可以查找插入的,只要你认识并明白意思就行了。

    本课练习:写出在场景一帧上对下面元件1、元件2、AA、BB四个元件引用的路径。

              在四个元件下,分别写出对其它元件引用路径。

              记忆:on (release)、onClipEvent(enterFrame)、.、_root、_parent、this六个命令的意思以及用法,以后会经常用到才能消化,先强记得。

    最后说明

    1)所谓绝对路径是指从根部指向任何一个目标的路途描述,在FLASH中根部就是场景时间轴(_root)。换句话说在场景帧上写路径时,绝对路径=相对路径,也就是_root=this。

    2)所谓相对路径就是指从当前位置出发指向任何一个目标的路途描述,父一级就写._parent,子一级就写.元件实例名,本地描述就是this。

    3)本课路径中的元件名均指元件在场景中或其它元件中的实例名,并不是指元件在库中的名称。实例名和库中名称可以起一样的,也可以不一样,AS语言中只能调用实例名。

    4)元件的实例名可以起中文,也可以起英文或英文+数字。请注意不能起数字开头的名子,更不能是纯数字,最好也别用符号,很多符号在语言中是有特别意义,还有要注意实例名中不能包含空格。最后AS语言中保留字也不能起,如IF,AND,THIS等这些语言中特别意义的单词也是不能起做实例名和变量名的。有人说我怎么知道哪些是系统保留字呢,这个不用你们烦,如果你起了系统保留字,当时电脑就会跳出对话框提醒并阻止你明显不规范的命名。
 
场景1里,元件1、元件2、AA和BB的路径:

_root.元件1

_root.元件2

_root.元件1.AA

_root.元件1.AA.BB

问题1:如果是在场景1的帧里引用路径,“_root”是否可以省去不写?


元件1里,元件2、AA、BB的路径:

this._parent.元件2

this.AA

this.AA.BB

元件2里,元件1、AA、BB的路径:

this._parent.元件1

this._parent.元件1.AA

this._parent.元件1.AA.BB

AA里,元件1、元件2、BB的路径:

this._parent

this._parent._parent.元件2

this.BB

BB里,元件1、元件2、AA的路径:

this._parent._parent

this._parent._parent._parent.元件2

this._parent

上面所写的路径,有些,如果只要绝对路径,不要相对路径的话,可以直接按场景里的路径引用,即“_root.****”。

问题2:上面所写的路径里,“this”是否可以省略不写?

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多