flashscript

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

flashscript
Flash 的帮助中找到相应指南。

变量定义类型
var map:BitmapData = new BitmapData(hsize, vsize, true, 0x00000000);
var 变量名:数据类型(有很多种不同于⼀般的VB或者C语⾔类型)=变量值;是变量类型等于⽽⾮往常的变量名=值。

var distance = Math.abs(this["icon"+i]._x-this._xmouse)/6; 也有缩略版
关于相对路径
相对路径取决于控制时间轴和⽬标时间轴之间的关系。

相对路径只能确定 Flash Player 中它们所在层上的⽬标的位置。

例如,在_level0上的某个动作以_level5上的时间轴为⽬标时,不能使⽤相对路径。

在相对路径中,使⽤关键字this指⽰当前层中的当前时间轴;使⽤_parent别名指⽰当前时间轴的⽗时间轴。

您可以重复使⽤_parent别名,在 Flash Player 同⼀层内的影⽚剪辑层次结构中逐层上升。

例如,
_parent._parent控制影⽚剪辑在层次结构中上升两层。

Flash Player 中任何⼀层的最顶层时间轴是唯⼀具有未定义_parent值的时间轴。

实例charleston(较southcarolina低⼀层)时间轴上的动作,可以使⽤以下⽬标路径将实例southcarolina作为⽬标:
若要从charleston中的动作指向实例eastCoast(上⼀层),可以使⽤以下相对路径:
若要从charleston的时间轴上的动作指向实例atlanta,可以使⽤以下相对路径:
相对路径在重复使⽤脚本时⾮常有⽤。

例如,您可以将以下脚本附加到某个影⽚剪辑,使其⽗级放⼤ 150%:
您可以通过将此脚本附加到任意影⽚剪辑实例来重复使⽤该脚本。

注:Flash Lite 1.0 和 1.1 只⽀持将脚本附加到按钮。

不⽀持将脚本附加到影⽚剪辑。

⽆论使⽤绝对路径还是相对路径,都要⽤后⾯跟着表明变量或属性名称的点 (.) 来标识时间轴中的变量或对象的属性。

例如,以下语句将实例form中的变量name设置为值"Gilbert":
on 处理函数
on(mouseEvent:Object) { // your statements here }
指定触发动作的⿏标事件或按键。

参数
mouseEvent:Object ― mouseEvent 是⼀个称为事件的触发器。

当事件发⽣时,执⾏该事件后⾯⼤括号 ({ }) 中的语句。

可以
为 mouseEvent 参数指定下⾯的任⼀值:
press 当⿏标指针滑到按钮上时按下⿏标按键。

release 当⿏标指针滑到按钮上时释放⿏标按键。

releaseOutside 当⿏标指针滑到按钮上时按下⿏标按键,然后滑出此按钮区域并释放⿏标按键。

press 和 dragOut 事件始终在releaseOutside 事件之前发⽣。

注意:仅当 System.capabilities.hasMouse 为 true 或 System.capabilities.hasStylus 为 true 时,Flash Lite 中才⽀持此事件。

rollOut ⿏标指针滑出按钮区域。

注意:仅当 System.capabilities.hasMouse 为 true 或 System.capabilities.hasStylus 为 true 时,Flash Lite 中才⽀持此事件。

rollOver ⿏标指针滑到按钮上。

dragOut 当⿏标指针滑到按钮上时按下⿏标按键,然后滑出此按钮区域。

dragOver 当⿏标指针滑到按钮上时按下⿏标按键,然后滑出该按钮区域,接着滑回到该按钮上。

keyPress " " 按下指定的键盘键。

对于该参数的 key 部分,请指定⼀个键常数,如"动作⾯板"中的代码提⽰所⽰。

可以使⽤这个参数来截取某个按键,也就是说,覆盖所指定键的任何内置⾏为。

该按钮可以在您的应⽤程序中的任何地⽅,可以在舞台上或不在舞台上。

此技术的⼀个局限是不能在运⾏时应⽤ on() 处理函数;您必须在创作时应⽤它。

请确保选择"控制">"禁⽤快捷键",否则在使⽤"控制">"测试影⽚"测试应⽤程序时某些具有内置⾏为的键不会被覆盖。

若要查看键常数列表,请参阅 Key 类。

导⼊类
import 类名
import flash.display.BitmapData
flash.display 包中包含可⽤于构建可视显⽰内容的 BitmapData 类。


说明
BitmapData BitmapData 类可⽤于在⽂档中创建可任意调整⼤⼩的透明或不透明位图图像,并且可以在运⾏时以各种⽅式对它们进⾏处理。

请参阅
BitmapData (flash.display.BitmapData)。

Setproperty函数
setProperty 函数
setProperty(target:Object, property:Object, expression:Object) : Void
当影⽚剪辑播放时,更改影⽚剪辑的属性值。

可⽤性:ActionScript 1.0、Flash Player 4
参数
target:Object―要设置其属性的影⽚剪辑的实例名称的路径。

property:Object―要设置的属性。

expression:Object―或者是属性的新的字⾯值,或者是计算结果为属性新值的等式。

⽰例
以下 ActionScript 创建⼀个新的影⽚剪辑并向其中加载⼀个图像。

通过使⽤setProperty() 对剪辑设置 _x 和 _y 坐标。

当单击名为 right_btn 的按钮时,名为 params_mc 的影⽚剪辑的 _x 坐标会递增 20 个像素。

this.createEmptyMovieClip("params_mc", 999);
params_mc.loadMovie("/doc/f27b77f8b0717fd5360cdcda.html /flash/images/image1. jpg"); setProperty(this.params_mc, _y, 20);
setProperty(this.params_mc, _x, 20);
this.right_btn.onRelease = function() {
setProperty(params_mc, _x, getProperty(params_mc, _x)+20);
};
下表列出了在 ActionScript 2.0 中触发代码提⽰的后缀:
对象类型变量后缀
Array _array
Button _btn Camera _cam Color _color ContextMenu _cm ContextMenuItem _cmi Date _date Error _err LoadVars _lv LocalConnection _lc Microphone _mic MovieClip _mc MovieClipLoader _mcl PrintJob _pj NetConnection _nc NetStream
_ns SharedObject _so Sound _sound String _str TextField _txt TextFormat _fmt Video _video XML _xml XMLNode
_xmlnode
XMLSocket _xmlsocket
ActionScript 3.0 编程
ActionScript 语⾔及其语法> 运算符
运算符
运算符是⼀种特殊的函数,它们具有⼀个或多个操作数并返回相应的值。

"操作数"是被运算符⽤作输⼊的值,通常是字⾯值、变量或表达式。

例如,在下⾯的代码中,将加法运算符 (+) 和乘法运算符 (*) 与三个字⾯值操作数(2、3 和 4)结合使⽤来返回⼀个值。

赋值运算符 (=) 随后使⽤该值将所返回的值 14 赋给变量 sumNumber。

var sumNumber:uint = 2 + 3 * 4; // uint = 14
运算符可以是⼀元、⼆元或三元的。

"⼀元"运算符有 1 个操作数。

例如,递增运算符 (++) 就是⼀元运算符,因为它只有⼀个操作数。

"⼆元"运算符有 2 个操作数。

例如,除法运算符 (/) 有 2 个操作数。

"三元"运算符有 3 个操作数。

例如,条件运算符(?:) 具有 3 个操作数。

有些运算符是"重载的",这意味着它们的⾏为因传递给它们的操作数的类型或数量⽽异。

例如,加法运算符 (+) 就是⼀个重载运算符,其⾏为因操作数的数据类型⽽异。

如果两个操作数都是数字,则加法运算符会返回这些值的和。

如果两个操作数都是字符串,则加法运算符会返回这两个操作数连接后的结果。

下⾯的⽰例代码说明运算符的⾏为如何因操作数⽽异:
trace(5 + 5); // 10
trace("5" + "5"); // 55
运算符的⾏为还可能因所提供的操作数的数量⽽异。

减法运算符 (-) 既是⼀元运算符⼜是⼆元运算符。

对于减法运算符,如果只提供⼀个操作数,则该运算符会对操作数求反并返回结果;如果提供两个操作数,则减法运算符返回这两个操作数的差。

下⾯的⽰例说明⾸先将减法运算符⽤作⼀元运算符,然后再将其⽤作⼆元运算符。

trace(-3); // -3
trace(7-2); // 5
⼦主题
运算符的优先级和结合律
主要运算符
后缀运算符
⼀元运算符
乘法运算符
加法运算符
按位移位运算符
关系运算符
等于运算符
按位逻辑运算符
逻辑运算符
条件运算符
赋值运算符
运算符的优先级和结合律
运算符的优先级和结合律决定了运算符的处理顺序。

虽然对于熟悉算术的⼈来说,编译器先处理乘法运算符 (*) 然后再处理加法运算符 (+) 似乎是⾃然⽽然的事情,但实际上编译器要求显式指定先处理哪些运算符。

此类指令统称为"运算符优先级"。

ActionScript 定义了⼀个默认的运算符优先级,您可以使⽤⼩括号运算符 (()) 来改变它。

例如,下⾯的代码改变上⼀个⽰例中的默认优先级,以强制编译器先处理加法运算符,然后再处理乘法运算符:
var sumNumber:uint = (2 + 3) * 4; // uint == 20
您可能会遇到这样的情况:同⼀个表达式中出现两个或更多个具有相同的优先级的运算符。

在这些情况下,编译器使⽤"结合律"的规则来确定先处理哪个运算符。

除了赋值运算符之外,所有⼆进制运算符都是"左结合"的,也就是说,先处理左边的运算符,然后再处理右边的运算符。

赋值运算符和条件运算符 (?:) 都是"右结合"的,也就是说,先处理右边的运算符,然后再处理左边的运算符。

例如,考虑⼩于运算符 (<) 和⼤于运算符 (>),它们具有相同的优先级。

如果将这两个运算符⽤于同⼀个表达式中,那么,由于这两个运算符都是左结合的,因此先处理左边的运算符。

也就是说,以下两个语句将⽣成相同的输出结果:
trace(3 > 2 < 1); // false
trace((3 > 2) < 1); // false
将⾸先处理⼤于运算符,这会⽣成值 true,因为操作数 3 ⼤于操作数 2。

随后,将值 true 与操作数 1 ⼀起传递给⼩于运算符。

下⾯的代码表⽰此中间状态:
trace((true) < 1);
⼩于运算符将值 true 转换为数值 1,然后将该数值与第⼆个操作数 1 进⾏⽐较,这将返回值 false(因为值 1 不⼩于 1)。

trace(1 < 1); // false
您可以⽤括号运算符来改变默认的左结合律。

您可以通过⽤⼩括号括起⼩于运算符及其操作数来命令编译器先处理⼩于运算符。

下⾯的⽰例使⽤与上⼀个⽰例相同的数,但是因为使⽤了⼩括号运算符,所以⽣成不同的输出结果:
trace(3 > (2 < 1)); // true
将⾸先处理⼩于运算符,这会⽣成值 false,因为操作数 2 不⼩于操作数 1。

值 false 随后将与操作数 3 ⼀起传递给⼤于运算符。

下⾯的代码表⽰此中间状态:
trace(3 > (false));
⼤于运算符将值 false 转换为数值 0,然后将该数值与另⼀个操作数 3 进⾏⽐较,这将返回 true(因为 3 ⼤于 0)。

trace(3 > 0); // true
下表按优先级递减的顺序列出了 ActionScript 3.0 中的运算符。

该表内同⼀⾏中的运算符具有相同的优先级。

在该表中,每⾏运算符都⽐位于其下⽅的运算符的优先级⾼。

组运算符
主要[] {x:y} () f(x) new x.y x[y] <> @ :: ..
后缀x++ x--
⼀元++x --x + - ~ ! delete typeof void
乘法* / %
加法+ -
按位移位<< >> >>>
关系< > <= >= as in instanceof is
等于== != === !==
按位"与" &
按位"异或" ^
按位"或" |
逻辑"与" &&
逻辑"或" ||
条件?:
赋值= *= /= %= += -= <<= >>= >>>= &= ^= |=
逗号,
主要运算符
主要运算符包括那些⽤来创建 Array 和 Object 字⾯值、对表达式进⾏分组、调⽤函数、实例化类实例以及访问属性的运算符。

下表列出了所有主要运算符,它们具有相同的优先级。

属于 E4X 规范的运算符⽤ (E4X) 来表⽰。

运算符执⾏的运算
[]初始化数组
{x:y}初始化对象
()对表达式进⾏分组
f(x)调⽤函数
new调⽤构造函数
x.y x[y]访问属性
<>初始化 XMLList 对象(E4X)
@访问属性 (E4X) ::限定名称 (E4X)
..访问⼦级 XML 元素
(E4X)
重要概念和术语
以下参考列表包含将会在本章中遇到的重要术语:
属性(Attribute):在类定义中为类元素(如属性或⽅法)分配的特
性。

属性通常⽤于定义程序的其它部分中的代码能否访问属性或⽅
法。

例如,private 和public 都是属性。

私有⽅法只能由类中的代
码调⽤;⽽公共⽅法可以由程序中的任何代码调⽤。

类(Class):某种类型的对象的结构和⾏为定义(与该数据类型的
对象的模板或蓝图类似)。

类层次结构(Class hierarchy):多个相关的类的结构,⽤于指定哪
些类继承了其它类中的功能。

构造函数(Constructor):可以在类中定义的特殊⽅法,创建类的实
例时将调⽤该⽅法。

构造函数通常⽤于指定默认值,或其它⽅式执
⾏对象的设置操作。

数据类型(Data type):特定变量可以存储的信息类型。

通常,"数
据类型"表⽰与"类"相同的内容。

点运算符(Dot operator):句点符号(.),在ActionScript(和很多
其它编程语⾔)中,它⽤于指⽰某个名称引⽤对象的⼦元素(如属
性或⽅法)。

例如,在表达式myObject.myProperty 中,点运算符
指⽰myProperty 项引⽤的值是名为myObject 的对象的元素。

枚举(Enumeration):⼀组相关常数值,为⽅便起见⽽将其作为⼀
个类的属性组合在⼀起。

继承(Inheritance):⼀种OOP 机制,它允许⼀个类定义包含另⼀
个类定义的所有功能(通常会添加到该功能中)。

实例(Instance):在程序中创建的实际对象。

命名空间(Namespace):实质上是⼀个⾃定义属性,它可以更精确
地控制代码对其它代码的访问。

后缀运算符只有⼀个操作数,它递增或递减该操作数的值。

虽然这些运算符是⼀元运算符,但是它们有别于其它⼀元运算符,被单独划归到了⼀个类别,因为它们具有更⾼的优先级和特殊的⾏为。

在将后缀运算符⽤作较长表达式的⼀部分时,会在处理后缀运算符之前返回表达式的值。

例如,下⾯的代码说明如何在递增值之前返回表达式 xNum++ 的值:
var xNum:Number = 0;
trace(xNum++); // 0
trace(xNum); // 1
下表列出了所有的后缀运算符,它们具有相同的优先级:
运算符执⾏的运算
++递增(后缀)
--递减(后缀)
⼀元运算符
⼀元运算符只有⼀个操作数。

这⼀组中的递增运算符 (++) 和递减运算符 (--) 是"前缀运算符",这意味着它们在表达式中出现在操作数的前⾯。

前缀运算符与它们对应的后缀运算符不同,因为递增或递减操作是在返回整个表达式的值之前完成的。

例如,下⾯的代码说明如何在递增值之后返回表达式 ++xNum 的值:
var xNum:Number = 0;
trace(++xNum); // 1
trace(xNum); // 1
下表列出了所有的⼀元运算符,它们具有相同的优先级:
运算符执⾏的运算
++递增(前缀)
--递减(前缀)
+⼀元 +
-⼀元 -(⾮)
!逻辑"⾮"
~按位"⾮"
delete删除属性
typeof返回类型信息
void返回 undefined 值
乘法运算符具有两个操作数,它执⾏乘、除或求模计算。

下表列出了所有的乘法运算符,它们具有相同的优先级:
运算符执⾏的运算
*乘法
/除法
%求模
加法运算符
加法运算符有两个操作数,它执⾏加法或减法计算。

下表列出了所有加法运算符,它们具有相同的优先级:
运算符执⾏的运算
+加法
-减法
按位移位运算符
按位移位运算符有两个操作数,它将第⼀个操作数的各位按第⼆个操作数指定的长度移位。

下表列出了所有按位移位运算符,它们具有相同的优先级:
运算符执⾏的运算
<<按位向左移位
>>按位向右移位
>>>按位⽆符号向右移位
关系运算符
关系运算符有两个操作数,它⽐较两个操作数的值,然后返回⼀个布尔值。

下表列出了所有关系运算符,它们具有相同的优先
级:
运算符执⾏的运算
<⼩于
>⼤于
<=⼩于或等于
>=⼤于或等于
as检查数据类型
in检查对象属性
instanceof检查原型链
is检查数据类型
等于运算符
等于运算符有两个操作数,它⽐较两个操作数的值,然后返回⼀个布尔值。

下表列出了所有等于运算符,它们具有相同的优先级:
运算符执⾏的运算
==等于
!=不等于
===严格等于
!==严格不等于
按位逻辑运算符
按位逻辑运算符有两个操作数,它执⾏位级别的逻辑运算。

按位逻辑运算符具有不同的优先级;下表按优先级递减的顺序列出了按位逻辑运算符:
运算符执⾏的运算
&按位"与"
^按位"异或"
|按位"或"
逻辑运算符
逻辑运算符有两个操作数,它返回布尔结果。

逻辑运算符具有不同的优先级;下表按优先级递减的顺序列出了逻辑运算符:
运算符执⾏的运算
&&逻辑"与"
||逻辑"或"
条件运算符
条件运算符是⼀个三元运算符,也就是说它有三个操作数。

条件运算符是应⽤if..else 条件语句的⼀种简便⽅法。

运算符执⾏的运算
:条件
赋值运算符
赋值运算符有两个操作数,它根据⼀个操作数的值对另⼀个操作数进⾏赋值。

下表列出了所有赋值运算符,它们具有相同的优先级:
运算符执⾏的运算
=赋值
*=乘法赋值
/=除法赋值
%=求模赋值
+=加法赋值
-=减法赋值
<<=按位向左移位赋值
>>=按位向右移位赋值>>>=按位⽆符号向右移位赋值&=按位"与"赋值
^=按位"异或"赋值
|=按位"或"赋值。

相关文档
最新文档