最常用AS语法及语句总结.docx
《最常用AS语法及语句总结.docx》由会员分享,可在线阅读,更多相关《最常用AS语法及语句总结.docx(13页珍藏版)》请在冰豆网上搜索。
![最常用AS语法及语句总结.docx](https://file1.bdocx.com/fileroot1/2023-5/16/11bea714-76b6-406a-9c40-728d054bf47c/11bea714-76b6-406a-9c40-728d054bf47c1.gif)
最常用AS语法及语句总结
Flash最常用AS语法及语句总结
Flash最常用AS语法及语句总结2010-05-1311:
12Flash最常用AS语法及语句总结Flash最常用AS语法及语句总结■FLASH按钮+链接
on(release){
getURL("相应链接");
■用flash做那种弹出的小窗口
分两步:
1.给flash中的按钮加入如下action:
on(release){
getURL("");
2.在HTML页面的head./head之间加入下面的","_self","POST");
注意要将网页中的flash的ID号命名为"links"
on(release){getURL("window.external.AddFavorite('网页');","_self","POST");}
■产生随机数
产生6--20之间的5个不重复的随机数
1):
首先产生一个随机数,放在数组对象中的第一个位置;
2):
产生一个新的随机数.
3):
检查新产生的随机数和所有目前已产生的随机数是否相同,若是相同则返回
(2),否则返回(4)
4):
将新的随机数加入数组对象中下一个数组元素内.
5):
检查数组对象个数是否已达到5个,若是跳到(6),否则返回
(2)
6):
结束.
AS代码如下:
data1=newArray(5);tot=1;data1=[tot-1]=random(20-6+1)+6;do{gen_data=random(20-6+1)+6;reapeat_data=0;for(i=0,i=tot-1;i++){if(gen_data==datareapeat_data=1;break;}}if(reapeat_data==0){tot++data[tot-1]=reapeat_data;}}while(tot5);trace(data1);
■flash一打开就是全屏
这里说的方法只是用于flashPlayer(fp)
■如何禁止右键菜单
fscommand的方法还是只能适用于fp,在网页中使用还是必须添加额外的参数
PARAMvalue="false"
或者用最简单的一句as,在fp和网页中均适用:
Stage.showMenu=false;
■载入动画
loadMovie("dd.swf",a);//这里没有引号~
■播完动画后自动跳到某网页
getURL("siteindex.htm","_self");//注意这里有引号。
1.你先学会加动作的三种方式:
在帧上加,在mc上加,在按钮上加.用playstopgoto这三个命令反复练习.不要用太多的命令给自己吃迷晕药.用实例练,不要空练.2.会了我说的1后,要学给按钮加动作的8种方法和给mc加的9种方法.3,会了我说的2了,就要学个编程最基础最重要的东西--路径的描述(能看懂就能用)
1>_root.mc1.mc2..mcn.play()[或stop(),_x,.]2>_parnet3>this4>mc1.mc2..5>_leveln.mc1.mc2..mcn.play()[或stop(),_x,.]
练习这样个实例对你也许有帮助,把一首你喜欢听的歌随意放在某个mc中,随意地在某个mc或按钮上加动作去控制它,想让它停就停,想让它放就放.4。
遇到问题,自己想办法解决,不要老是依靠别人,在自己做过之后还是不行的话可就要发问拉,当然问的方法要好多种,这里就不说拉!
5.要自强自信,不要迷信洋人的东东,活学活用重在理6.了解代码执行的先后顺序:
图层默认的是从下向上执行level是从下向上执行帧是随实际播放顺序执行代码本身从上向下一行一行地执行7.了解两种坐标系统:
场景下的坐标,o点在左上角,y轴向下是增大x向右是增大组件的坐标,o点在组件中心,y轴向下是增大x向右是增大8.了解三种文本域静态文体域:
和排版软件的文字工具一样.动态文本域和输入文本域:
其实就把它们看是两种变量,只不过是可见的变量,9.详细了解GOTO语句prevFrame()跳至并停止在前一祯。
nextFrame()跳至并停止在下一祯。
prevScene()跳至并停止在前一场景的第1帧。
nextScene()跳至并停止在下一场景的第1帧。
gotoAndPlay([scene,]frame)跳至scene场景(省略表示当前场景)的frame帧并播放。
gotoAndStop([scene,]frame)跳至scene场景(省略表示当前场景)的frame帧并停止。
10,了解MC的各种可改写的属性_x中心点所在相对X坐标(象素单位)_y中心点所在相对Y坐标(象素单位)_xscale横向缩放比例,初始为100_yscale纵向缩放比例,初始为100_rotation相对旋转角度(度单位)_width相对显示宽度(象素单位)_height相对显示高度(象素单位)_alpha显示透明度(0~100)_visible是否可见_focusrect是否显示焦点框_name实例名称11,三大纪律:
1>写代码时一定要用英文(如ENCH)输入法2>必须要有唯物主义思想,没有加载的MC是不可以更改它的属性,更不可以写代码去控制它。
这个问题较难掌握,高手有时也会犯,道理就是先有吃的才能请客吃,啥也没有请客吃什么呢3>操作什么一定要选什么(实际上哪个软件也要这样)。
在MX中加代码时如不选,就一定要写明名称,实际上也是一种先择。
12,八项注意:
1按钮不能盖着输入文本,动态文本和输入文本域不能盖着按钮2>用loadMoie时LEVEL1及以上的文件尽量少用大隐型按钮3>从一个文件中复制MC实例到别一个文件中时,尽量复制帧,而不能直接复制实例,4>从一个文件中复制MC实例到别一个文件中时,要先把目标文件中的符号库中原有的符号,装进资夹里,很多网友这个问题上上过当吧?
5>.ActionScript的基本语法规则使用ActionScript编写脚本时,如果使用正常模式的动作面板,通过菜单和列表选择选项,可以创建简单的动作。
要想用ActionScript编写功能强大的脚本,你就必须深入了解和学习FlashMX的ActionScript脚本语言。
像其它脚本语言一样,ActionScript也有变量、函数、对象、操作符、保留关键字等语言元素,有它自己的语法规则。
ActionScript允许用户创建自己的对象和函数。
ActionScript的语法和风格与javascript非常相似,但不完全相同。
ActionScript拥有自己的句法和标点符号使用规则,这些规则规定了一些字符和关键字的含义,以及它们的书写顺序。
例如,在英语中用句号结束一个句子,而在ActionScript中则用分号结束一个语句。
下面列出的是ActionScript的一些基本语法规则,对于比较比较特别的规则,请参阅ActionScript词典。
1.点语法在ActionScript中,点(.)被用来指明与某个对象或电影剪辑相关的属性和方法。
它也用标识指向电影剪辑或变量的目标路径。
点语法表达式由对象或电影剪辑名开始,接着是一个点,最后是要指定的属性、方法或变量。
例如,表达式ballMC.x是指电影剪辑实例ballMC的_X属性,_X电影剪辑属性指出编辑区中电影剪辑的X轴位置。
例如,submit是在电影剪辑form中设置的一个变量,而form又是嵌套在电影剪辑shoppingCart中的电影剪辑。
表达式shoppingCart.form.submit=true的作用是设置实例form的submit变量的值为true。
表达一个对象或电影剪辑的方法遵循相同的模式。
例如,ballMC实例的play方法用于移动ballMC的时间轴播放头,就像下面的语句:
ballMC.play();点语法使用两个特殊的别名:
_root和_parent。
别名_root是指主时间轴。
可以使用_root别名创建一个绝对路径。
例如,下面的语句调用主时间轴中电影剪辑functions的buildGameBoard函数:
_root.functions.buildGameBoard();FlashMX允许使用别名_parent来引用嵌套当前电影剪辑的电影剪辑。
也可以用_parent创建一个相对目标路径。
例如,如果电影剪辑dog被嵌套在电影剪辑animal之中,那么,在实例dog上的下列语句告诉animal电影剪辑停止播放:
_parent.stop();2.斜杠语法Flash的以前版本是使用斜杠语法指出电影剪辑或变量的目标路径的。
FlashMX播放器仍然支持这种语法,但不推荐使用。
在斜杠语法中,斜杠被用来代替点,用以标明电影剪辑或变量的路径。
要指出一个变量,可以在变量前加上冒号,如下面的语句所示:
myMovieClip/childMovieClip:
myVariable我们现在用点语法取代上述斜杠语法来表示上面的目标路径:
myMovieClip.childMovieClip.myVariable
斜杠语法在tellTarget动作中使用最为普遍,但这种动作在FlashMX中已不再推荐使用。
【说明】与其使用tellTarget动作还不如使用with动作与点语法兼容。
3.大括号ActionScript语句用大括号({})分块,如下面的脚本所示:
on(release){myDate=newDate();currentMonth=myDate.getMonth();}
4.分号ActionScript语句用分号(;)结束,但如果你省略语句结尾的分号,Flash仍然可以成功地编译你的脚本。
例如,下面的语句用分号结束:
colum=passedDate.getDay();row=0;同样的语句也可以不写分号:
colum=passdDate.getDay()row=05.圆括号定义一个函数时,要把参数放在圆括号中:
functionmyFunction(name,age,reader){.}调用一个函数时,也要把要传递的参数放在圆括号中:
myFunction("Steve",10,true);圆括号可以用来改变ActionScript的运算优先级,或使自己编写的ActionScript语句更容易阅读。
也可以用圆括号来计算点语法点左边的表达式。
例如,在下面的语句中,圆括号使表达式newcolor(this)得到计算,并创建了一个新的颜色对象:
onClipEvent(enterFrame){(newColor(this)).setRGB(oxffffff);}在上例中,如果不使用圆括号,就需要在代码中增加一个语句来计算它:
onClipEvent(enterFrame){myColor=newColor(this);myColor.setRGB(0xffffff);}
6.大小写字母在ActionScript中,只有关键字区分大小写。
对于其余的ActionScript,可以使用大写或小写字母。
例如,下面的语句是等价的:
cat.hilite=true;CAT.hilite=true;
但是,遵守一致的大小写约定是一个好的习惯。
这样,在阅读ActionScript代码时更易于区分函数和变量的名字。
如果在书写关键字时没有使用正确的大小写,你的脚本将会出现错误。
例如下面的两个语句:
setProperty(ball,_xscale,scale);setproperty(ball,_xscale,scale);前一句是正确的,后一句中property中的p应是大写而没有大写,所以是错误的。
在动作面板中启用彩色语法功能时,用正确的大小写书写的关键字用蓝色区别显示,因而很容易发现关键字的拼写错误。
7.注释需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。
如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。
在动作面板中选择comment动作时,字符"//"被插入到脚本中。
如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:
on(release){//建立新的日期对象myDate=newDate();currentMonth=myDate.getMonth();//把用数字表示的月份转换为用文字表示的月份monthName=calcMoth(currentMonth);year=myDate.getFullYear();currentDate=myDate.getDat();}
在脚本窗口中,注释内容用粉红色显示。
它们的长度不限,也不影响导出文件的大小。
8.关键字ActionScript保留一些单词,专用于与本语言之中。
因此,不能用这些保留字作为变量、函数或标签的名字。
下表列出了ActionScript中所有的关键字:
breakcontinuedeleteelseforfunctionifinnewreturnthistypeofvarvoidwhilewith【注意】这些关键字都是小写形式,不能写成大写形式。
9.常量常量有其值永不改变的属性。
常数用大写字母列于动作工具箱中。
例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。
要测试用户是否在按Enter键,可使用下面的语句:
if(keycode()==key.ENTER){alert="你准备好了吗?
"controlMC.gotoAndStop(5);}
ActionScript中的术语ActionScript根据特定的语法规则使用特定的术语。
以下按字母顺序介绍重要的ActionScript术语.Actions(动作):
是指导Flash电影在播放时执行某些操作的语句。
例如,gotoAndStop动作就可以将播放头转换到指定的帧或帧标记。
Action(动作)也可以被称作statement(语句)。
Arguments(参数):
是允许将值传递给函数的占位符。
例如,以下语句中的函数welcome就使用了两个参数firstName和hobby来接收值:
functionwelcome(firstName,hobby){welcomeText="Heelo,"+firstName+"Iseeyouenjoy"+hobby;}
Classed(类):
是各种数据类型。
用户可以创建"类"并定义对象的新类型。
要定义对象的类,用户需创建构造器函数。
Constants(常量):
是不会改变的元素。
常量对于值的比较非常有用。
Constructors(构造器):
是用来定义"类"的属性和方法的函数。
以下代码通过创建Circle构造器函数生成了一个新的Circle类。
functionCircle(x,y,radius){this.x=x;this.y=y;this.radius=radius;}
Datatypes(数据类型):
是可以执行的一组值和操作。
ActionScript的数据类型包括:
字符串、数值、逻辑值、对象和影片剪辑。
Events(事件):
是在电影播放过程中发生的动作。
例如,当电影裁入时、当播放头到达某一帧时、当用户单击按钮或影片剪辑时、当用户按压键盘上的按钮时,都会产生不同的操作。
Expressions(表达式):
是可以产生值的语句。
例如2+2就是一个表达式。
Functions(函数):
是可以重复使用和传递参数的代码段,可以返回一个值。
例如,getProperty函数就可以使用影片剪辑的实例名称和属性名称,返回属性值。
getVersion函数可以返回当前播放电影的Flash播放器的版本。
Handlers(句柄):
是可以管理诸如mouseDown和load事件的特殊动作。
例如,onMouseEvent和onClipEvent就是ActionScript的句柄。
Identifiers(标识符):
是用来指示变量、属性、对象、函数或方法的名称。
标识符的首字母必须是字符、下划线(_)或美元符号($)。
后续字符可以是字符、数字、下划线或美元符号。
例如,firstName就是一个变量名。
Instances(实例):
是属于某些class(类)的对象。
每个类的实例都包含该类的所有属性和方法。
例如,所有影片剪辑实例都包含MovieClip类的属性(透明度属性、可见性属性)和方法(例如gotoAndPlay、getURL等)。
Instancenames(实例名称):
是一个唯一的名称。
可以在脚本作为目标被指定。
Keywords(关键字):
是具有特殊意义的保留用词。
例如,var就是一个关键字,它可以用来定义本地变量。
Methods(方法):
是指定给对象的函数。
在函数被指定给对象之后,该函数就可以被称为是该对象的方法。
Objects(对象):
是属性的集合。
每个对象都有自己的名称和值。
对象允许用户访问某些类型的信息。
例如,ActionScript的预定义对象Date就提供了系统时钟方面的信息。
Operands(运算项):
是由表达式中的运算符操控的值。
Operators(运算符):
可以从一个或多个值中计算获得新值。
例如,将两个数值相加就可以获得一个新值。
Parameters(参数):
也被称之为Arguments(参数)。
Properties(属性):
是定义对象的attributer(属性)。
例如,所有影片剪辑对象都具有_visible(可见性)属性,通过该属性可以决定影片剪辑是否显示。
Targetpaths(目标路径):
是Flash电影中影片剪辑名称、变量和对象的垂直分层结构地址。
主时间轴的名称是_root。
影片剪辑属性检查器中可以命名影片剪辑的实例。
用户可以通过目标路径使动作指向影片剪辑,也可以使用目标路径获取或设置变量的值。
例如,以下示例语句就是影片剪辑stereoControl内部的变量volume的路径:
-root.stereoControl.volumeVariables(变量):
是存储了任意数据类型值的标识符。
变量可以创建、修改和更新。
变量中存储的值可以被脚本检索使用。
在以下的示例中,等号左边的是变量标识符,右边的则赋予变量的值:
x=5;name="Lolo";customer.address="667thStreet";c=newColor(mcinstanceName);
编写ActionScript脚本编写Flash动作脚本并不需要用户对ActionScript有完全的了解,用户的需求才是真正的目标。
有了设计创意之后,用户要做的就是为此选择恰当的动作、属性、函数或方法。
学习ActionScript的最佳方法是创建脚本。
用户可以在动作面板的帮助下建立简单脚本。
一旦熟悉了在电影中添加诸如play和stop这样的基础动作之后,用户就可以开始学习更多有关ActionScript的知识。
要使用ActionScript的强大功能,最重要的是了解ActionScript语言的工作原理:
ActionScript语言的基础概念、元素以及用来组织信息和创建交互电影的规则等。
1.脚本的规划和调试在为整个电影编写脚本时,脚本的数量和变化可以可能都是巨大的。
例如,用户可能需要考虑以下问题:
决定使用哪些动作,如何建立更有效的脚本结构,以及在哪些地方放置脚本?
所有这些问题都需要经过仔细规划和测试。
特别是当电影变得越来越复杂时,这些问题更加显得突出。
在开始编写脚本之前,用户需明确自己要达到的目标。
例如,这些目标可能是使用Flash创建整个站点。
?
询问站点访问者姓名,并且在整个站点中重复使用该信息。
?
站点具有一个可拖动的导航工具栏,可以帮助用户跳转到站点的任意分支。
?
当某一个按钮被单击时,新的内容以淡入方式出现在舞台中央。
?
专门设立一个和用户联系的场景,其中包含已经填入用户姓名的表单。
在明确了制作动画要达到的目的之后,用户就可以开始创建对象并编写脚本来控制这些对象。
让脚本按照自己需要的方式工作,这通常比编写脚本要花费时间。
用户需要经常不断地测试自己的脚本是否工作正常。
为达到目的,最好的方法是从简单脚本开始,频繁测试,编写并测试完一部分可正常工作的脚本之后,就可以保存文件的一个版本。
这种工作方法可以帮助用户更有效地调试脚本错误,在编写更加复杂的脚本时也有坚实的基础。
2.面向对象的脚本编程在面向对象的编程方法中,用户通过将信息分类成组来组织信息。
用户可以创建某一类信息的多个实例,以便在脚本中使用。
用户可以使用ActionScript预定义的class(类),也可以创建自己的类。
ActionScript内置的类位于动作在板的Objects(对象)文件夹。
在创建class(类)时,用户需为由该类所创建的每个对象定义所有属性(特性)和方法(行为)。
这和现实世界中对象的定义方法一样。
例如,"人"具有诸如性别、身高和头发颜色之类的属性,"人"的行为包括说话、走路、投掷等,在本示例中,"人"就是一个类,而每个单独的人就是该类的实例,即Object(对象)。
ActionScript中的对象可以包含数据,也可以是舞台上的影片剪辑。
所有影片剪辑都是预定义的MovieClip类的实例。
每个影片剪辑实例都有MovieClip类的所有属性(例如_height,高度;_rotation,旋转;_totalframes,总帧数等)和所有方法(例如,gotoAndPlay,转到并播放;loadMovie,载入电影;startDrag,开始拖动等)。
要定义class(类),用户需创建一个特殊的被称为"构造器"的函数。
Flash预定义的类已经定义了构造器函数。
例如,如果需要电影中一个骑车人的信息,则可以创建一个名为Biker的构造器函数。
该函数包括"时间"和"距离"属性,也包含"速度"方法,该方法可以将骑车人的移动速度告诉用户。
functionBiker(t,d){this.time=t;this.distance=d;}functionSpeed(){returnthis.time/this.distance;}Biker.prototype.rate=Speed;在编写构造器函数之后,用户就可以创建Biker类的副本,即:
实例。
以下代码就可以创建Biker类对象的实例emma和hamish:
emma=newBiker(30,5);hamish=newBiker(40,5);
实例之间还可以相互通信。
例如,对于Biker类的对象来说,用户可以创建一个shove(推)的方法,让一个骑车人推另外一个骑车人。
这样,当hamish实例靠得太近时,emma实例就可以调用shove方法,将hamish推开。
要将信息传递给方法,可使用参数。
例如,shove(推)方法就可以携带who(被推者)和howFar(推多远)参数,如下列示例。
emma.shove(hamish,10);
在面向对象编程方法中,类可以按指定顺序相互接收属性和方法,这就是所谓的继承。
用户可以使用继承扩展或重定义类的属性和方法,从其他类继承属性和方法的类被称为"子类",将属性和方法传递给其他类的类被称为"超类",一个类可以同时是"子类"和"超类"。
3.脚本的流程Flash将从第一行语句开始执行ActionScript语句,一直按次序执行到最终语句或ActionScript指定跳转到的语句。
将执行次序发送到其他地方而不是下一语句的动作包括:
if语句、do.while循环和return动作。
if语句被称为条件判断语句或"逻辑分支",因为它是基于某些条件的评估判断来控制脚本流程的。
例如,以下代码就将检查变量mynumber中的值是否否小于或等于10,如果检查结果返回true(例如,mynumber的值为5),则变量alert被设置文本字符串值,并在输出的文本域中显示其值。
if(myNumber=10){alert="Thenumberislessthanorequalto10";}用户也可以添加else语句来创建更加复