第四课 基本语法

闪客沙龙

文/小东瓜 整理/大成

 

 

  基本语法

  Flash5有自己的语法规则与标点符号,它们是用来定义并产生一些有意义的字符.单词或者句子。比如在英语中句点用来表示一个单词的结束,而在Flash5的Action中用分号(;)来表示一条语句的结束。

  一、点语法

  点语法是Flash5中最重要的语法,点可以指出对象或者影片夹子的属性或者方法(方法的概念跟函数有点相似),它还可以标识出影片夹子的路径或者变量,一个点语法表达式以对象或者影片夹子的名字开始,后面跟着一个点,以属性、方法或者变量来结束。在这两组之间可以加入路径。比如,_x表示一个影片夹子在舞台中的X轴位置,而newmc._x就是指出影片夹子实例newmc的X轴位置。在另一个实例中 ,当你想传送一个变量给一个表单时,可以按下面方面来书写:

shoppingCart.form.submit = true,

  这样书写表示设置了购物车表单传送变量为真。你就可以方便地把用户填好的表单内容传给后台程序去处理了。

  你还可以在影片夹子后面跟住相应方法来指示相对应的影片夹子做相应的操作。比如:
test.play();test.stop();

  这两句可以分别表示影片夹子test的播放和停止。在点操作中可以使用两个特别的属性:_root和_parent。这两个分别表示当前路径的根路径和上一级路径。下面的内容就是专门调用主场景中影片夹子dongua的函数display():
_root.dongua.display();

  当然,你也可以使用_parent的方法来取得影片夹子中的相对当前位置的变量的值或者使用方法。比如,下面的代码就是设置上一级dongua变量的值。
_parent.dongua = "小东瓜";

  关于路径的详细内容我会在关于路径一文中专门讲到,在这里暂时不做详细讲解。


  二、斜杠语法

  斜杠语法主要是在Flash3和Flash4使用得较多,它主要的目的是为了指出影片夹子或者变量的路径。在Flash5中为了向下兼容,这个语法仍然得到支持,但是我并不堆荐使用这个语法。在斜杠语法中斜杠被用来代替前面所说的点来指示出影片夹子或变量的路径,如果按这种格式来书写变量路径的话还需在变量前加上一个冒号(:),比如loading实例中:   

/bar:loaded = loaded+"%";

键盘0,1,2,3,4,5,6,7,8,9的“对象动作 ”代码:(注意:不同1-9的按钮,将引号内的数字改成该按钮的数字)

on (release, keyPress "0") {
/Display:Digit = "0";
call ("/Display:Add Digit");
}


  而同样的用点语法来写的要简单明了得多:
 myMovieClip.childMovieClip.myVariable
  当然,两种书写方式都支持路径的相对路径与绝对路径。斜杠语法一般来说是在tellTarget的Action中用得较多,其它的地方建议少用,因为他的语法较复杂,容易出错,建议大家多用点语法来实现相应的功能。

  三、大括号

  大括号语法

  ActionScript代码中可以用大括号({})把一段代码括起来,组成一个代码段来完成一个相对完整的功能,这种代码一般来说是处于子程序、函数或者功能组之中。比如一些特定的操作比如响应鼠标事件、调用影片夹子,或者循环语句等等。

loading实例中:


if (byteloaded == bytetotal) {
gotoAndPlay ("ok");
}
else { gotoAndPlay ("loop");
}



  钟表实例中:

onClipEvent (enterFrame) {
setProperty (this, _rotation, _root.seconds);
}

  

  四、分号

Flash5中分号(;)表示一个句子的结束,每一条语句都是由分号来结束的,比如:


stop();

等等,但是如果你自己手写代码中如果在结束时忘记加上分号了也没有关系,因为编译程序会自动帮你加上。

  五、圆括号

  当你使用函数,或者在函数调用要传送一些参数时需使用圆括号。比如:
Function disppeople(name,sex,age) {
  ……
}
在这里如果你要调用这个函数就要把它的参数写进括号中:
disppeople("小东瓜","male",28);
在其它的命令与操作中还有些命令要求你用圆括号,比如响应鼠标事件,for循环和一些条件判断语句等。


  你也可以使用大括号来的方式使用点语法在点的左边来计算一个表达式,比如下面的状态就是创建并产生一个新的颜色对象。

onClipEvent(load) {
(new Color(this)).setRGB(0xffff00));
}


  如果你不使用大括号语法你就必需写多一个代码段来实现它:

onClipEvent(load) {
nowColor = new Color(this);
nowColor.setRGB(0xffff00);
}
  六、大小写字符

  在ActionScript中只有关键字是大小写敏感的,而其它的内容你可以按照你想的方式任意来写。比如下面的代码是完全等价的。

tree.height = true;
Tree.height = true;

  然后在书写时保持大写或者小写的一致性是一种很好的习惯,这样别人或者你自己在读代码时可以比较容易地读懂代码,也容易找到相应的函数与变量。如果你的关键字没有正确的使用大写,代码将会出错,如果编程面板中的语法加亮功能打开的话,正确的关键字代码应该是蓝色。下面便是系统常用的关键字,你在给变量取名时不能用这些关键字来做为你自己的变量。

break
for
new
var

continue
function
return
void

delete
if
this
while

else
in
typeof
with

  当然,Flash的关键字远不止这些,具体的请你你查Flash5自己带的参考手册。

  七、注释

  在Flash中可以使用注释语句来对你的程序解释,给程序加上注释是个极好的习惯。有很多人在写程序时边想边写,然后为了节省时间不给程序加注释,结果是不但别人看不懂他写的程序,过了一段时间连他自己也看不懂了,再修改的时候就非常麻烦了。在Actions中,你可以使用双斜杠(//)来表示注释,


//计算时针的角度,int()取整数函数,把数值强制转换成整数。时针一小时30度,再加上分钟的度数。

hours = hours*30+int(minutes/2);


//计算分针的角度,分针一分钟是6度,再加上秒针的度数。

minutes = minutes*6+int(seconds/10);


//计算秒针的角度,秒针一秒种6度

seconds = seconds*6;



  在专家模式时你甚至可以写成/*……*/嵌套的方式,这种方式可以一下子对很多行进行注释。然后程序在执行前会把它转换成一般模式(normal mode),此时注释便会自动转换成(//)形式。