分享

ActionScript菜鸟基础终极教程4

 关东老圃 2013-03-30
 3.2 ActionScript之一角
  当你在编写自己的脚本时,你会用到各种各样不同的关键字和符号,为便于你熟悉脚本的构成,下面先来看一个真实的例子。
  这是一段作用于按钮的脚本,当用户单击按钮时(确切地说是松开按下的按钮时)执行它。其中没有包含特殊的函数,但是它体现了ActionScript的主要结构。
  on (release) {
  var myNumber = 7;
  var myString = "Flash MX ActionScript";
  for (var i=0; i  traceLight Bulb;
  if (i + 3 == 8) {
  trace(myString);
  }
  }
  }
  脚本的第1行表明当用户松开按下的按钮时执行大括号中的语句。on (release)结构只能用于按钮,其他相关的几种用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。
  第1行末尾的大括号{表示一段相对独立的代码段的开始。从{到与之相对的}之间的代码是一个整体,它们都从属于按钮的release事件。
  请注意,大括号之后的代码较之第1行有一个制表符(按一次Tab键)的缩进,其后的每行代码与之具有相同的缩进程度,直到一个新的大括号开始,在新大括号后的语句会比前面的语句增加一个制表符的缩进,以此类推,这种特点与其他编程语言是类似的。Flash会自动将你添加的代码设置成正确的缩进样式。
  代码的第1行创建一个名为myNumber的局部变量,并将该变量的值设置为7。下面一行将字符串Flash MX ActionScript赋给另一个变量myString。稍后我们会更详细的介绍变量的两种类型:局部变量和全局变量。
  分号;表示一条指令的结束,在每个完整指令的末尾都应该添加分号。
  for代表一个循环结构的开始,此处的循环执行7(myNumber)次,即令i从0递增到6,每递增1便执行一次循环结构中的语句。for后面大括号中的部分即为循环体。
  命令trace将它后面括号中的内容发送到输出窗口。我们将在下一部分详细介绍输出窗口。
  if是一种条件结构,它测试后面的内容i + 3 == 8是否为true,如果为true,则执行后面的语句;否则跳过该代码段。
  if结构中只有一个trace命令,它将变量myString的值发送到输出窗口。
  上例脚本以三个反向大括号}结束,第1个表示if语句的结束,第2个表示for语句的结束,第3个表示整个on(press)段结束。
  3.3 输出窗口
  输出窗口是只在测试Flash影片时出现的一个编程工具,Flash用它来显示出错信息或其他的一些重要信息。用户可以用ActionScript中的trace命令自定义要发送到输出窗口中的信息。
  输出窗口在测试程序时非常有用。你可以使用trace命令在输出窗口中显示变量的值或者哪一部分ActionScript正在执行。
  输出窗口还可以帮助你学习ActionScript。你可以编写一些小程序,将信息发送到输出窗口,这将帮助你看到程序的运行结果。
  要想熟悉输出窗口,最好的方法就是多使用它。下面就来编写一段小程序,将信息发送到输出窗口。
  (1)启动Flash MX。
  (2)选中时间轴的第1帧,打开第1帧的动作面板。
  (3)使用右上角的菜单将动作面板切换到专家模式。
  (4)在脚本编辑区单击鼠标,将鼠标光标定位到脚本编辑区中。
  (5)在动作面板中输入如下ActionScript:
  trace("I like ActionScript!");
  此时的动作面板如图3-1所示。

  (6)按Ctrl+Enter键测试影片,因为舞台中没有任何图像,所以你将看到一个空白窗口,同时出现一个输出窗口,窗口中显示:I like ActionScript!如图3-2所示。

  和动作面板一样,输出窗口右上角也有一个下拉菜单,如图3-3所示,其中包含了拷贝、清除、查找、保存到文件以及打印等命令。
  下拉菜单的最后一项命令是“调试级别”,你可以选择“错误”、“警告”、“详细”中的一种,如果选择“无”,将不显示任何信息。

 

3.4 ActionScript基本语法
  前面介绍了程序的基本结构,下面要讲解ActionScript中的基本语法。
  

  3.4.1 变量
  

  1.设置变量
  在ActionScript中使用变量的方法很简单,你只需要为变量名分配一个值,例如:
  myVariable = 7;
  该例在创建名为myVariable的变量的同时将其值设置为7,你可以为变量任意取一个名字,而并不需要使用本例中的myVariable。
  可以使用输出窗口查看变量的值,如在一个空白影片第一帧的动作面板中添加如下ActionScript:
  x = 7;
  trace(x);
  首先,数字7被存储在变量x中;然后,使用trace命令将变量x的值发送到输出窗口。影片播放时,输出窗口中会显示数字7。
  

  2.全局变量
  根据变量作用的范围不同可将变量分为全局变量和局部变量。
  全局变量就是可以作用在整个Flash影片的所有深度级别上的变量。你可以在某一帧中设置它,并在其他帧中使用和改变它的值。
  你不需要使用特别的方法创建全局变量,像前一个例子一样,直接设置并使用它,它自动成为一个全局变量。
  在许多编程语言中,全局变量可以在任何地方使用。Flash影片使用一个概念叫层级(level)。整修影片的主时间轴作为根(root)层级,影片剪辑是时间轴中的小影片。影片剪辑中的图形和脚本要比根层级低一个级别。影片剪辑不能直接使用根层级中的全局变量。
  

  3.局部变量
  局部变量只能存在于当前脚本中,而在其他帧中它将不再存在。你可以在使用同一个变量名在不同的帧中创建不同的局部变量,它们之间将互不影响。
  局部变量可用来创建模块化的代码。当前脚本执行完时,局部变量将被从内存中删除;而全局变量将保留到影片结束。
  创建局部变量需要使用关键字var。例如,下面的ActionScript创建值为15的局部变量myLocalVariable:
  myLocalVariable = 15;
  使用var创建局部变量后,在当前代码中就不再需要使用关键字var了。例如,下面的代码创建值为20的局部变量 myLocalVariable,然后将其值改为8,再发送到输出窗口中。
  var myLocalVariable = 20;
  myLocalVariable = 8;
  trace(myLocalVariable);
  如果没有特殊的需要,请尽量使用局部变量。

  3.4.2 比较
  在ActionScript中比较两个事物是很容易的,要进行比较可以使用标准的数学符号,如=、<、>等。
  1.相等
  在ActionScript中用比较运算符对两个值进行比较。
  要比较两个值是否相等,可以使用连在一起的两个等于符号(==)。单个等于符号(=)是用来为变量分配值的,并不是比较运算符。
  如果要比较变量x的值是否等于7,就可以使用==符号,如下所示:
  var x = 7;
  trace(x == 7);
  以上代码使用=符号将变量x设置为7,然后使用==符号对x和7进行比较。
  测试这两行代码,输出窗口将显示“true”。如果将x设置为8或其他数,则会显示“false”。
  ==符号还可以用来比较两个字符串。如下所示:
  var myString = "Hello ActionScript.";
  trace(myString == "Hello ActionScript.");
  trace(myString == "hello ActionScript.");
  程序运行时,你将在输出窗口中看到一个“true”和一个“false”,因为在字符串中字母是要区分大小写的。
  如果你要比较两个值是否不等,可以使用!=符号,它的意思是“不等于”。如下所示:
  var a = 7;
  trace(a != 9);
  trace(a != 7);
  第1个trace语句显示信息“true”,因为a确实不等于9;第2个trace语句显示信息“false”。

  2.小于和大于
  使用标准的数学符号<和>比较两数是否成小于或大于关系。举例如下:
  var a = 9;
  trace(a < 10);
  trace(a > 5);
  trace(a < 1);
  你将从输出窗口中看到“true”、“true”和“false”。
  符号<=或>=用于比较一个数是否小于等于或大于等于另一个数,如下所示:
  var a = 9;
  trace(a <= 9);
  trace(a >= 9);
  trace(a >= 7);
  以上3个trace语句都将显示“true”。 

  3.4.3 运算
  通过运算可以改变变量的值。分别使用算术运算符+、-、*、/执行加、减、乘、除操作。
  如下所示的ActionScript将值为9的变量x加上一个数7:
  var x = 9;
  x = x + 7;
  trace(x);
  运算结果为16。
  在ActionScript中执行运算可以使用一些简写方法,如+=运算符将其前后的值相加并将结果赋给它前面的变量。前面的脚本也可以写成如下的形式:
  var x = 9;
  x += 7;
  trace(x);
  ++运算符与+=运算符类似,但它每执行一次,变量的值只增加1,如下面的例子:
  var x = 9;
  x++;
  trace(x);
  结果显示10。再看下面的例子:
  var x = 9;
  trace(x++);
  trace(x);
  结果是9和10。为什么呢?因为第1个trace语句输出x的当前值9,然后将x加1,输出x的新值10。
  再试一下下面的脚本:
  var x = 9;
  trace(++x);
  trace(x);
  这次的结果为两个10。因为将++运算符置于变量前面,将先执行运算再返回变量的值。
  同理,--运算符执行递减操作,-=运算符在变量当前值的基础上减去一个数,*=运算符在变量当前值的基础上乘上一个数,/=运算符在变量当前值的基础上除以一个数。

  3.4.4 条件
  既然现在你已经知道如何比较两个变量,你就可以将比较结果作为执行某些语句的条件。
  1.if语句
  if语句使你可以使用比较结果控制Flash影片的播放。如下所示的语句判断X是否等于9,如果比较结果为true,则让影片跳到第15帧:
  if (x == 9) {
  gotoAndPlay(15);
  }
  if语句以if开始,其后紧跟一个比较表达式,比较表达式通常用一对括号括起来,再后面即是用大括号括起来当比较结果为true时要执行的代码。

  2.else
  对if语句可以进行扩展,使用else执行条件不成立(比较表达式为false)时的代码,如下所示:
  if (x == 9) {
  gotoAndPlay(15);
  } else {
  gotoAndPlay(16);
  }
  你也可以使用else if语句将if语句更推进一步,如下所示:
  if (x == 9) {
  gotoAndPlay(15);
  } else if (x == 10) {
  gotoAndPlay(16);
  } else if (x == 11) {
  gotoAndPlay(20);
  } else {
  gotoAndPlay(25);
  }
  你可以让if语句想要多长就有多长,你也可以使用else if语句对别的变量进行比较,如下所示:
  if (x == 9) {
  gotoAndPlay(15);
  } else if (y<20) {
  gotoAndPlay(16);
  } else {
  gotoAndPlay(25);
  }

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多