学习AS3:唯一的类变量

变量

(本文非直接翻译,原文如下:)
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);

时间: 2025-01-31 02:12:00

学习AS3:唯一的类变量的相关文章

学习AS3:delete关键字和类成员

关键字 delete关键字在Flash中是用来删除定义的变量,但是并不将对象从内存中清除掉(这是垃圾收集器的工作).它只是将一个变量的引用设置成无效,让内存中的这个对象无法再被引用和使用,也无法再使用for in来枚举. 事实上,垃圾处理器(GC)将在特定的时候,自动的从内存中删除那些不再被引用和使用的变量.比如,你创建了两个对象引用A和B,都指向了对对象ObjectX的引用,如果delete了A,并不会让垃圾收集器把ObjectX从内存中删除,因为B的引用还是指向了这个对象.如果将A和B都de

ACL 第一天:Tutorial钟爱深度学习,唯一一个workshop关注女性群体| ACL 2017

雷锋网AI科技评论按:计算机语言学和自然语言处理最顶尖的会议之一ACL 将于2017年7月30日至8月4日在加拿大温哥华举行.雷锋网(公众号:雷锋网) AI 科技评论将赴前线带来一手报道,并对论文及大会概况进行梳理. 今天是预热 tutorial 环节,也是 ACL 会议延续至今的传统,旨在帮助研究领域的新手们了解计算机语言学与自然语言处理的核心技术,同时也会介绍目前这些分领域的一些前沿内容. 今年的 Tutorial 主席是科罗拉多大学的 Jordan Boyd-Grabe 和柏林洪堡大学的

学习AS3:动态修改影片的帧频

动态 在AS3中,你可以使用Stage类动态的修改影片的帧频. Stage类(flash.display.Stage)的stage对象是所有的sprite和MovieClip以及其他在安全沙箱里的所有元件的舞台.stage对象的帧频可以是0.01到1000之间的任何一个数.要修改帧频,使用下面的代码: // 将帧频修改到12帧每秒(FPS) stage.frameRate = 12;类方法的作用域和类绑定在一起 AS3完全基于类构造.当一个类被创建的时候,类中的参数,变量,方法或任何实例都同时被

学习AS3:*新的变量类型

变量 AS3中有许多新的数据类型.其中有些类型是以前没有出现的.AS3中的基本数据类型如下: 简单数据类型: Boolean int null Number String uint undefined复杂数据类型: Object Array Date Error Function RegExp XML XMLList新的数据类型通过类来定义,例如: Matrix (flash.geom.Matrix)Shape (flash.display.Shape)URLRequest (flash.net

进阶:学习As2.0与AS3.0的尴尬

从macromedia大刀阔斧对As1.0进行改革到AS2.0,这一段过程看上去还算长一些,从flashmx到flash mx2004到flash 7.2再到flash8. 它们的核心actionscript都是as2.0.在flash8刚刚发布不长时间,macromedia又紧罗密鼓的推出了flash9预览版,大家都已经知道了Adobe发布的预览版可以对AS3.0进行编译,而As3.0经过测试它的速度可以说要比之前的as2.0快10倍.拿着as3.0与As2.0相对比,虽然有些东西看着面熟,但

学习As2.0与AS3.0的尴尬

从macromedia大刀阔斧对As1.0进行改革到AS2.0,这一段过程看上去还算长一些,从flashmx到flash mx2004到flash 7.2再到flash8. 它们的核心actionscript都是as2.0. 在flash8刚刚发布不长时间,macromedia又紧罗密鼓的推出了flash9预览版,大家都已经知道了Adobe发布的预览版可以对AS3.0进行编译,而As3.0经过测试它的速度可以说要比之前的as2.0快10倍.拿着as3.0与As2.0相对比,虽然有些东西看着面熟,

Flash AS3日积月累之三

http://as3blog.com/as3/as3tip-take-care-of-resource 摒弃了attachMovie之后的AS3,采用了类似DOM的操作方式.addChild.removeChild.getChildAt等方法开始成为AS3中显示(在屏幕上渲染).操作图形的主要方法.由于AS1.AS2完全是依赖于attchMovie的思想,因此对于传统Flash开发人员来说,转变到新的addChild的确需要下一番功夫. 由于新的"DisplayObject"在内存的使

Javascript初学者教程:学习JavaScript的步骤

文章简介:最后undefined 感谢阅读此文!真诚的希望它能帮你成为一名JavaScript 爱好者.如果你已对JavaScript 很熟悉,你可以在评论中推荐其他任何相关资源. 学习新的东西是件可怕的事.对我来说,掌握一项新技能最大的问题是,我不知道自己懂什么.鉴于此,定个计划,学习你感兴趣的东西应该会有用.这篇文章的主旨就是:你为学习JavaScript 制定的蓝图.路线.行动计划!你不必担心找不到最好的资源,先整理些不好的资源,再确定下一步该学什么.遵循它,一步一步来. 任务0:了解什么

探索F9 As3.0 Preview

探索Flash Professional Actionscript 3.0 Preview 声明:本教程英文版源自Adobe的:http://www.adobe.com/devnet/flash/articles/flash9_as3_preview.html原作者:Jen deHaan和Peter deHaan本站对其进行了翻译整理,此教程转载请注明出处.并标有活动链接,谢谢合作. Adobe Flash Professional 9 ActionScript 3.0 Preview(以下简称