首页--> 计算机--> FLASH教程
 
每天学点AS3-4
http://www.xxqqss.com 学习轻松网 发布日期:2006/10/11 点击量:3785
 
本文非直接翻译,原文如下:)
In ActionScript 2, variables defined within a class's body were defined in the class's prototype object. This was an efficient means to handle variable definitions but it also meant that complex data types (such as Arrays) had a tendency to be "shared" among instances if not explicitly defined for instances within the class constructor. This is no longer a problem with ActionScript 3. Class variables defined in the class body are now unique to each class instance so this problem no longer occurs.

在AS2中,复杂数据类型(比如数组),如果在类体之中,方法之外直接初始化,而不在构造器中初始化,会被理解为“共享”的数据,而被所有的实例共享使用(类似于static的效果)。但是在AS3中不存在这个问题。类变量是每个实例独有的,唯一的变量。如下:

class myClass{
    
    private var list:Array = [1,2,3]; //在AS2中会有一定问题,AS3中就很好
            
    public function myClass(){
        //在AS2中,应该在这里初始化list
    }
}
*新的MouseMove行为


mouseMove行为在AS3中有所改变。以前,mouseMove动作是一个全局概念,也就是说不管鼠标在FlashMovie的任何一个地方,只要移动了,就会触发任何一个MovieClip的mouseMove行为。

在AS3中,Mouse对象不再用来分派(dispath)鼠标行为。对于mouseMove行为来说,你应该监听一个InteractiveObject的实例,比如Sprites,MovieClip和Stage。所以,你可能需要使用InteractiveObject来代替Mouse接收监听。 对于每一个InteractiveObject实例,mouseMove行为只在这个对象的所在范围内执行。如果你要使用全局的mouse事件监听,则需要对stage添加监听。

因此,在使用mouseMove来拖动一个对象的时候,当你的鼠标离开的脱离对象,对该对象的mouseMove事件就会失效,拖动效果也就同时实效了。这个时候,你可能需要对stage添加move行为来进行监听:

stage.addEventListener(MouseEvent.MOUSE_MOVE, dragMyObject);

打印】 【关闭
免责声明 :本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请发送fiyeadwyv@163.com
【免费游戏赚钱网址导航】(站长QQ:9792414)多站号请误用相同密码 【站长信箱】幸运28交流群号:122287647
游戏赚钱平台
注册地址
企业/个人
企业
 有赚网与蹦蹦网是深度合作关系
企业
手机app端赚钱名称
下载安装后输入邀请码领额外红包
估计日赚收入(亲体验)
下载方式
闪电盒子
邀请码:413270540831
3元
 安卓手机各应用市场(推荐应用宝),苹果手机输入名称查找。
中青看点
邀请码:25741975
2元
趣头条
邀请码:A443657406
1元
 
健康游戏忠告:抵制不良游戏,拒绝盗版游戏;注意自我保护,谨防受骗上当;适度游戏益脑,沉迷游戏伤身;合理安排时间,享受健康生活。
本站声明不参与任何游戏网站经营事宜,如果你和第三方游戏网站产生纠纷事宜请自行协商解决,本站感谢你的支持和理解。
站长QQ:9792414