当前位置:flash课件吧→flash文本教程(新页面 新改版 新气象

使用变量

 

变量是包含信息的容器。容器本身始终不变,但内容可以更改。通过在SWF文件播放时更改变量的值,可以记录和保存用户操作的信息,记录SWF文件播放时更改的值,或者计算某个条件是true还是false。

当首次定义变量时,最好为该变量指定一个已知值,这就是所谓的初使化变量,而且通常在SWF文件的第一帧中完成。初始化变量有助于在播放SWF文件时跟踪和比较变量的值。

变量可以包含任何类型的数据。变量中可以存储的常见类型包括URL、用户名、数学运算结果、事件发生次数,以及是否单击了某个按钮等等。每个SWF文件和影片剪辑实例都有一组变量,每个变量都有其各自的值,与其他SWF文件或影片剪辑中的变量无关。要测试变量的值,可以使用trace()动作向“输出”面板发送值。例如,trace(hoursWorked)会在测试模式下将变量hoursWorked的值发送给“输出”面板。也可在测试模式下,在调式器中检查和设置变量值。

  1. 命名变量

变量名称必须遵守下面的规则。

    1. 它必须是标识符。
    2. 它不能是关键字或动作脚本文本,例如true、false、null或undefined.
    3. 它在其范围内必须是惟一的。

此外,不应将动作脚本语言中的任何元素用作变量名称,这样做可能会导致语法错误或意外的结果。例如,如果将一个变量命名为string,然后尝试使用new string()创建一个string对象,则这一新对象是未定义的。

动作脚本编辑器支持内置类和基于这些类的变量的代码提示。如果需要Flash为指定给变量的特定对象类型提供代码提示,则可以精确键入变量或使用特定的后缀为该变量命名。例如,假设键入以下代码:

Var members:Array();

Members

只要一键入句点(。),Flash就会显示可用于Array对象的方法和属性的列表。

  1. 确定变量的范围和声明变量

变量的范围是指变量在其中已知并且可以引用的区域。在动作脚本中有3种类型的变量范围。

    1. 本地变量在声明它们的函数体(由大括号界定)可用。
    2. 时间轴变量可用于该时间轴上的任何脚本。
    3. 全局变量和函数对于文档中的每个时间轴和范围均可见。
  1. 本地变量

要声明本地变量,可在函数体内部使用var语句。本地变量的使用范围只限于它的代码块,它会在该代码块结束时到期。

例如,变量i和j经常用作循环计数器。在下面的示例中,i用作本地变量,它只存在于函数makeDays()的内部:

Function makeDays(){

Var I ;

For (i=0;<monthArray[month];i++);{

-root.Days.attachMovie(“DayDisplay”,I,i+2000);

-root.Days[i].num=i+1;-root.Days[i].-x=column﹡-root.Days[i].-width;

-root.Days[i].-y=row﹡-root.Days[i]-height;

Colum=colum+1;

If(column==7){

Column=0;

Row=row+1}

}

}

}本地变量也可防止出现名称冲突,名称冲突可能会导致应用程序出现错误。例如,如果使用name作为本地变量,则可以使用它在一个上下文中存储用户名,而在另一胩上下文中存储影片剪辑实例名称。因为这些变量是在不同的范围中运行的,所以它们不会有冲突。

在函数中使用本地变量是一个很好的习惯,这样该函数可以充当独立的代码。本地变量只有在它自己的代码块中才是可更改的。如果函数中的表达式使用全局变量,则在该函数以外也可以更改它的值,这样也更改了该函数。

可以在定义本地变量时为其指定数据类型,这有助于防止将类型错误的数据赋给现有的变量。

  1. 时间轴变量

时间轴变量可用于该时间轴中的所有帧上都初始化这些变量,应确保首先初始化变量,然后尝试在脚本中访问它。例如,如果将代码“var X=10;”放置在第20帧上,则附加到第20帧之前的任何帧上的脚本都无法访问该变量。

  1. 全局变量

全局变量和函数对于文档中的每一时间轴和范围而言都是可见的。若要创建具有全局范围的变量,应在变量名称前使用-global标识符,并且不使用var=语法。例如,以下代码创建全局变量myName:

Var-global.myName=“George”;//语法错误-global.myName=“George”;

但是,如果使用与全局变量相同的名称初始化一个本地变量,则在处于该本地变量的范围内时对该全局变量不具有访问权限:

-global.counter=100;

Counter++;

Trace(counter);//显示101

Function count(){

For(var counter=0;counter++){

Trace(counter);//显示0到10

}

}

Count();

Counter++;

Trace(counter);//显示102

  1. 在程序中使用变量

必须在脚本中声明变量,然后才能在表达式中使用它。如果使用未声明的变量(如下面示例所示),

该变量的值将是NaN或undefined,并且脚本可能产生意外的结果:

Var squared=x﹡x;

Trace(squared);//NaN

Var x=6;

在下面的示例中,声明变量X的语句必须排在第一,这样squared就可以替换为一个值:

Var x=6;

Var squared=x﹡x;

Trace(squared);//36

当用户将未定义的变量传递给方法或函数时,将出现类似的行为:

GetURL(myWebSite);//无动作

VarmyWebSitehttp://www.macromedia.com”; VarmyWebSitehttp://www.macromedia.com

GetURL(myWebSite);//浏览器显示www.macromedia.com

在一个脚本中,可以多次更改变量的值。变量包含的数据类型会影响如何以及何时更改变量,原始数据类型(例如字符串和数字)是按值进行传递的。这意味着变量的实际内容会传递给变量。

在下面的示例中,X设置为15,该值会复制到Y 中。在第三行中将X的值更改为30后,Y的值仍然为15,这是因为Y并不会参照X来改变它的值;它的值为在第二行中接收到的X的值。

Var x=15;

Var y=x;

Var x=30;

又例如,变量in Value包含一个原始值3,因此实际的值会传递给sprt()函数,而返回值为9:

Function sprt(x){

Returnx﹡x;

}

varinValue=3

var out=sqrt(inValue);

变量inValue的值不会更改

对象数据类型可以包含大量复杂的信息,所以属于此类型的变量并不包含实际的值,它包含的是对值的引用。这种引用类似于指向变量内容的别名,当变量需要知道它的值时,该引用会查询内容,然后返回答案,而无需将该值传递给变量。

下面是按引用进行传递的实例:

varmyArray=[“tom”,“josie”];

varnewArray=myArray;

myArray [1]=“jack”;

trace(newArray);

上面的代码创建了一个名为myArray的数组对象,它包含两个元素,然后创建了变量newArray,并向它传递了对myArray的引用。当myArray的第二个元素变化时,它将影响引用它的每个变量。Trace()动作会向“输出”面板发送tokm,jack.

在下面的示例中,myArray包含一个数组对象,因此它会按引用传递给函数zeroArray().zeroArray()函数会更改myArray中的数组的内容。

Function zeroArray(theArray){

Var I;

For(i=0;i< theArray.;length;i++){

theArray[i]=0;

}

}

Var myArray=newArray()

myArray[0] =1

myArray[1]=2;

myArray[2]=3;

zeroArray(myArray);

函数zeroArray()会将数组对象作为参数来接受,并将该数组的所有元素设置为0.因为该数组是按引用进行传递的,所以该函数可以修改它。

期刊论文服务

合作期刊
学报期刊
 
获奖证书办理
本站已改版成新站 课件115学培吧http://www.kj115.com
精彩导航(新网页 新气象 本站期待你的加入 )
新建Flash文档 保存Flash文档 关闭Flash文档
打开Flash文档 Flash中的常用术语 设置首选参数
设置舞台背景的大小 图层的基本操作 使用网格和标尺
Flash动画制作基本流程 Flash 背景知识 Flash中如何创建动画序列
常用术语 创建补间动画的方法是什么 动作脚本语法
动作脚本中的数据类型 如何对帧或关键帧进行修改 如何翻转帧
如何将对象分散到层 如何将静止的图象扩展到多个帧中 如何删除、修改帧或关键帧
如何设定移动渐变动画的渐隐效果 如何设定移动渐变动画的位置变化 如何使用“补间“选项创建补间动画
如何创建补间动画 如何向时间轴中插入帧 如何学习编写动作脚本
使用变量 使用运算符  
国家信息产业部备案专号:鄂ICP08005724返回顶部
本站推荐最佳分辨率:1024X768在线咨询台
声明:我站除课件制作动画制作培训以外,所有内容均属于免费资源。本站部分资源来自于网络,由本站收集整理,如有侵权请联系本站管理(QQ444860709 手机13339817386),我站会在三个工作日内处理。