开始的FlashAS3教程深入的研究(3)从基础

复习:类型转换和运算符


为允许对象的类型被改变到另一种类型的匹配,当需要的时候,它的类型转换。两AS2和AS3支持类型转换的方式类型(对象)。例如,一个数据类型被定义为对象,你可以将这些数据转换成另一种类型的利用语法数据类型名称。




类型转换和作为运算符


为允许对象的类型被改变到另一种类型的匹配,当需要的时候,它的类型转换。两AS2和AS3支持类型转换的方式类型(对象)。例如,一个数据类型被定义为对象,你可以将这些数据转换成另一种类型的通过使用一个类型名称的语法等数据:


var obj:对象= getmycustomobject();
过去customobj:myClass = MyClass(obj);


as3引入了一个新的算子,as类型转换运算符的变化,对象的数据类型而不是类型名称语法等:


var obj:对象= getmycustomobject();
过去customobj myClass =目标:MyClass;


作为运营商的工作方式是,在AS2非常相似。如果转换是不可能的,其转化的返回值为空。


AS3仍然支持类型转换的类型的方式,但是这种方式(对象)是从以前的略有不同。以前的转换失败返回null,而现在类型错误(TypeError)将被转换失败后,当你试图把对立的两个数据类型,他们失败了例如,一种数据类型转换为另一种类型,不能由工会和继承得到的。


注意:作为类(对象)的全局转换方法的优先级仍然高于类型(对象)转换方法。这些方法包括字符串()()、数字()和数组()。


7,唯一的类变量


(原文不直接翻译,原文如下:)
在Actionscript 2中,变量的定义在一个类中的身体被定义在类的原型对象。这是处理变量定义的有效手段,但这也意味着,如果在类构造函数中没有显式地定义实例,则复杂的数据类型(如数组)在实例之间有共享的倾向。这不再是在3定义脚本变量的问题。类类体现在对每个类实例都是唯一的,所以这个问题不再发生。


在AS2,复杂的数据类型(如数组),如果直接初始化在类体中而不是在构造函数中,会被理解为。通过数据共享将由所有实例共享(类似于静态的效果),但没有问题的AS3。一类的每个实例变量是独特的,唯一的变量,如下:


类{
私人风险清单:阵列= {1,2,3}; / /在AS2会存在一些问题,如很好
公共职能MyClass(){
/ /在AS2,应该在这里初始化列表
}
}


8、新MouseMove的行为


在AS3中改变MouseMove行为。之前,MouseMove行动是一个全球性的概念,那就是,无论在哪里,鼠标是在FlashMovie,只要它移动,它触发MouseMove影片剪辑的任何行为。


在AS3中,鼠标的对象不再是用来分配(调度)小鼠的行为。对于MouseMove的行为,你应该监测interactiveobject实例,如精灵、影片剪辑、和舞台。所以,你可能需要代替鼠标使用interactiveobject收到听众。每个interactiveobject实例,MouseMove行为只在客体范围执行。如果你想使用一个全局鼠标事件的监听,你需要添加一个监控阶段。


因此,当鼠标移动来拖动一个对象,当鼠标离开分离的对象,该对象的MouseMove事件会失败,和拖动效果将是有效的在同一时间。在这个时候,你可能需要添加移动行为阶段的监控:


stage.addeventlistener(mouseevent.mouse_move,dragmyobject);