Graphics 版 (精华区)
发信人: Doitforyou (我天天都来), 信区: Graphics
标 题: Flash5ActionScript教程 十四
发信站: 哈工大紫丁香 (2001年04月29日08:59:30 星期天), 站内信件
七、位操作符
位操作符在内部处理浮点数,把它们变为更易于处理的32位整数。 精确的位操作的
完成取决于操作符,但所有的位操作都是分别计算浮点数的每个数字,得出一个新的值
。
下表列出了ActionScript的位操作符:
操作符 执行的操作
& 位与
| 位或
^ 位异或
~ 位非
<< 左移位
>> 右移位
>>> 填0右移位
八、相等和赋值操作符
可以使用相等操作符(==)来决定两个操作数的值是否相等。这种比较返回一个逻
辑值(true 或 false)。如果操作数是字符串、数值或逻辑值,就以传值方式进行比较
。如果操作数是对象或数组,就以传址方式进行比较。
可以用赋值操作符(=)给变量赋值,如下所示:
password = "Sk8tEr";
也可以在同一个表达式中给多个变量赋值:
a = b = c = d;
也可以使用复合赋值操作符来组合操作。复合操作符对两个操作数进行操作,然后
把新的值赋给第一个操作数。例如,下面的两个语句是等价的:
x += 15;
x = x + 15;
下表列出了ActionScript的相等和赋值操作符:
操作符 执行的操作
== 相等
!= 不等
= 赋值
+= 加后赋值
-= 减后赋值
*= 乘后赋值
%= 取模后赋值
/= 除后赋值
<<= 左移位后赋值
>>= 右移位后赋值
>>>= 填0右移位后赋值
^= 位异或后赋值
|= 位或后赋值
&= 位与后赋值
九、点操作符和数组访问操作符
可用点操作符(.)和数组访问操作符来访问任何预定义的或自定义的ActionScrip
t对象属性,包括电影剪辑的属性。
点操作符的左边是对象名,右边是属性或变量名。属性或变量名不能是字符串或计
算结果是字符串的变量,它必须是一个标识符。下面是使用点操作符的例子:
year.month = "June";
year.month.day = 9;
点操作符和数组访问操作符完成同样的任务,但点操作符用标识符作为它的属性,
而数组访问操作符把它的内容先传给一个名字,然后访问该命名属性的值。例如,下面
的两行代码访问电影剪辑rocket中同一个变量velocity:
rocket.velocity;
rocket["velocity"];
可以使用数组访问操作符动态设置和检索实例名和变量。例如,在下面的代码中,
[]操作符内的表达式被计算,且计算结果被用作在电影剪辑name中被检索的变量名:
name["mc" + i ]
在Flash 4 ActionScript斜杠语法中,这是用eval函数实现的:
eval("mc" & i);
数组访问操作符也可以用在赋值语句的左边。这样,你就可以动态设置实例、变量
和对象的名字,如下例所示:
name[index] = "Gary";
在Flash 4 ActionScript斜杠语法中是这样实现的:
Set Variable: "name:" & index = "Gary"
数组访问操作符也可以嵌套,以模拟多维数组:
chessboard[row][column]
这等价于下面的Flash 4斜杠语法:
eval("chessboard/" & row & ":" & column)
使用动作
动作就是ActionScript的语句或命令。分配给同一帧或同一个对象的多个动作构成
一个脚本。 动作可以彼此独立地起作用,如下面的语句:
swapDepths("mc1", "mc2");
gotoAndPlay(15);
也可以在一个动作中嵌套另一个动作,构成动作的嵌套,使动作可以互相影响。在
下面的例子中,if动作告诉gotoAndPlay什么时候执行。
if (i >= 25) {
gotoAndPlay(10);
}
动作可以移动时间轴播放头(gotoAndPlay),通过创建循环(do while)或条件逻
辑(if),或创建新的函数和变量(function、setVariable),来控制脚本的流向。下
表列出了所有ActionScript动作:
动作
break evaluate include print stopDrag
call for loadMovie printAsBitmap swapDepths
comment for...in loadVariables removeMovieClip tellTarget
continue fsCommand nextFrame nextScene return toggleHighQuality
delete function on setVariable stopDrag
do...while getURL onClipEvent setProperty trace
duplicateMovieClip gotoAndPlay gotoAndStop play startDrag unloadMovie
else if prevFrame stop var
else if ifFrameLoaded prevScene stopAllSounds while
要了解每个动作的语法和用法的范例,请参阅ActionScript词典的相关词条。
注:ActionScript术语“动作”(action )与JavaScript 术语“语句”(statem
ent)同义。
书写目标路径
要使用动作控制电影剪辑或装载动画,你必须指定它的名字和它的地址,这称为目
标路径。下面的动作使用一个或多个目标路径作为参数:
loadMovie
loadVariables
unloadMovie
setProperty
startDrag
duplicateMovieClip
removeMovieClip
print
printAsBitmap
tellTarget
例如,loadMovie动作使用三个参数:URL、Location和Variables 。URL是你要装载
的动画在网络上的位置。 Location是动画将要载入的目标路径:
loadMovie(URL, Location,
Variables);
注:本例不需要 Variables参数。
下面的语句把URL http://www.mySite.com/myMovie.swf载入主时间轴_root的实例
bar中,_root.bar是目标路径:
loadMovie("http://www.mySite.com/myMovie.swf", _root.bar);
在ActionScript中,使用电影剪辑的实例名标识电影剪辑。例如,在下面的语句中
,电影剪辑star的 _alpha 属性被设置为50%可见。
star._alpha = 50;
要给电影剪辑的实例命名:
1 在编辑区选择电影剪辑。
2 选择 Window > Panels > Instance(窗口>面板>实例)。
3 在Name(名字)域中输入实例名。
要标识已载入的动画:
使用_levelX。其中, X 是载入动画的loadMovie动作中指定的层号。例如,载入第
5层的动画拥有实例名_level5。在下面的例子中,一个动画被载入第5层,且它的可见性
被设为假(false)
onClipEvent(load) {
loadMovie("myMovie.swf", 5);
}
onClipEvent(enterFrame) {
_level5._visible = false;
}
要输入动画的目标路径:
单击动作面板中的插入目标路径(Insert Target Path)按钮,在显示出来的列表
中选择一个电影剪辑
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.218]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.126毫秒