ImageVerifierCode 换一换
格式:DOCX , 页数:123 ,大小:673.37KB ,
资源ID:23657561      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23657561.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(as3教程flashActionScrip3.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

as3教程flashActionScrip3.docx

1、as3教程flashActionScrip3ActionScript 3 教程系列【黑羽】ActionScript 3.0系列教程(1):与Flash9先来一次亲密接触!如蒙转载,请留下我的Blog链接:www.kingda.org, thx)Flash Professional 9 ActionScript 3.0 Preview 版本今天发布了,意味着从此我们从此不仅仅只能使用Flex 2来使用AS3.0,更可以使用我们一直很熟悉的Flash IDE来进行AS3.0开发了。与Flex 2不同,Flash 9 alpha(即上面的Flash Professional 9 ActionScri

2、pt 3.0 Preview )允许我们创建基于时间轴的ActionScript 3.0的Fla文档,而不是基于State的MXML文档。 在Flash 9 alpha 里 ,我们和以前一样可以在舞台上直接手绘矢量图,创建元件,添加动画,等等。我黑羽是急性子,先跳开一些特色的介绍,单刀直入,马上来个实例。边讲解边说说Flash 9的特点。点击看大图,清楚点。为了照顾新手xdjm们,看图说话一把。老鸟略过勿看,省得嫌我罗嗦。呵呵。新建一个fla,随便画一个方块什么的,双击选中按 F8转换成MovieClip。在属性面板中命名为kingda_mc。和以前一模一样。再新建一层,命名为actions,

3、这是个好习惯,要保持。选中第一帧,按F9打开动作面板,写入如下代码。Control+Enter,在测试窗口中,双击那个方块,就会有trace信息显示出来。/【黑羽】ActionScript 3.0系列教程(1) /http:/www.kingda.orgkingda_mc.doubleClickEnabled = true;kingda_mc.addEventListener(MouseEvent.DOUBLE_CLICK, clickHandler);function clickHandler(event:MouseEvent):void trace(哈哈,你双击我了);/直接支持双击了,

4、兄弟们,爽不爽 _稍作解释,这儿有几个和AS2.0不同的地方了。1. AS2.0中 ,MovieClip是不可以加侦听器地,但AS3.0中,却可以了。讲点深入的东东给老鸟听 ,所有AS3.0中能被我们看见的对象,其祖宗都是DisplayObject类。标准说法是都间接或直接的继承于DisplayObject类。而这个DisplayObject又是EventDispatcher的儿子。所以,我们就有了这个推论:AS3.0中所有能被我们看到的东西,都能发送事件和加侦听器。 完全适用于Event Model.爽吧, 我是爽歪了。AS2.0中为了解决这个麻烦我还自己编了一个代理发送事件类EventSe

5、nder。省了不少事儿,而现在连这个也不用了,霍哈哈。2.AS3.0中要让MovieClip在接受click事 件 ,rollover事件能够像Button一样,鼠标放上去显示手型 ,那么一定要加上一句:kingda_mc.buttonMode = true;小事一桩,一笔带过。3.AS3.0中的事件模型和AS2.0大不一样了。简而言之,就是“规范”。不再直接使用字符串来定义事件名称了。又要讲深一点了,都是使用了新的const型变量来定义事件字符串名称,一旦定义,不能再更改。如public static const MOVE:String = move;极大的避免了我们因为手误,打错字符串,而

6、花上一个下午找bug。使用了这种模式,我们一旦打错,编译器立刻会发现并告诉我们。多好。给出一些鼠标事件列表,大家可以替换上面源码中的事件类型,自己试着玩儿。如,你可以换成MouseEvent.MOUSE_OVER就变成了以前的onRollOver效果。CLICK : String = clickstatic Dispatched when a user presses and releases the main button of the users pointing device overthe same InteractiveObject. MouseEventDOUBLE_CLICK :

7、 String = doubleClickstatic Dispatched when a user presses and releases the main button of a pointing device twice inrapid succession over the same InteractiveObject when that objects doubleClickEnabled flag is set totrue. MouseEventMOUSE_DOWN : String = mouseDownstatic Dispatched when a user presse

8、s the pointing device button over an InteractiveObject instancein the Flash Player window. MouseEventMOUSE_LEAVE : String = mouseLeavestatic Dispatched by the Stage object when the mouse pointer moves out of the Flash Player windowarea. EventMOUSE_MOVE : String = mouseMovestatic Dispatched when a us

9、er moves the pointing device while it is over an InteractiveObject.MouseEventMOUSE_OUT : String = mouseOutstatic Dispatched when the user moves a pointing device away from an InteractiveObject instance.MouseEventMOUSE_OVER : String = mouseOverstatic Dispatched when the user moves a pointing device o

10、ver an InteractiveObject instance in theFlash Player window. MouseEventMOUSE_UP : String = mouseUpstatic Dispatched when a user releases the pointing device button over an InteractiveObject instancein the Flash Player window. MouseEventMOUSE_WHEEL : String = mouseWheel/支持鼠标滚轮喽,霍霍。指出一点,在我给出的例子中,使用了双击

11、这个事件。这个有点特殊,在使用双击事件之前,要加上一句:kingda_mc.doubleClickEnabled = true;因为MovieClip对于双击事件默认是false,关闭的。4.侦听器的不同。在AS2.0中我们通常要新建一个对象做侦听器。也可以像我的例子中用function做侦听器。但是,很可惜,由于 AS2.0的设计缺陷,使得 function中的this指向常常给我们带来困扰。于是有了Delegate类来解决。而如今,AS3.0中采用了优秀的Traits Object架构(唔,这个,就暂不解释了),使得它能记住this的指向。所以,兄弟们,放心大胆使用Function作为侦听

12、器使用吧。今天就写这么多了,主要是Flash 9出来,我老人家激动了一下,一下子写了这么多东东。希望对大家有所帮助,希望大家狂顶支持一把,不然没动力,本系列教程会变成太监贴!霍哈哈! _快回帖支持!本篇主要涉及了一下AS3.0中的事件模型部分,这是很重要的。以后会有更深入的教程来详细介绍。本篇的目的就是让大家使用一下Flash 9和AS3,消除陌生感。写的浅了,还请包涵。下一篇介绍非常实用的东东,类和MovieClip的绑定,和Flash 9中一大特色:Document Class。用来替代在时间轴写代码的好东东。【黑羽】AS 3.0教程(2):AS3.0的类及绑定hi,鸟笼山的朋友们,这次我

13、们开始介绍AS3.0中的类如何和库中元件绑定,和特殊的DocumentClass设计。总共4步:1.建一个标准的AS3.0类 (暂命名为KingdaMC,多么伟大的名字啊,简称“有名”)2.新建一个元件,并设置它的Linkage和上面的类绑定。3.在时间轴上写代码,用AS3.0代码创建n份“有名”。4.删掉时间轴上代码,使用Flash 9新特色Document Class在舞台上创造n份“有名”。just 体验一把 。(写起来才知道要讲的内容多啊,晕,打了两个小时,累了,本节专门只讲讲AS3.0的类吧,其余的慢慢再讲)在创建AS3.0之前,请允许我先对AS3.0类的语法和继承设计表示敬意。与标

14、准的完全兼容,更好更严格的封装特性,特别是命名空间(name space)的引入。从今天起从AS3.0起, 在OOP层面上,AS3.0已经和Java,C#平起平坐了,甚至在某些方面(比如name space)比java更有意思。让俺对AS2.0老鸟说几句憋在心里的激动之语:如果说AS2.0只是外表接近OOP标准语言,内在还是乱糟糟的AS1.0脚本语言,那么AS3.0不论是从OOP设计级别,还是从编译器级别(如,对弱引用 week reference 的支持)来评估的都是标准、正宗、强大的语言。从AS3.0起,我们ActionScript 开发者可以挺起胸口,俺们是真正的行业标准级程序员。在我继

15、续教程之前,我要唱首歌给大家听:AS3的英明,绝对不是一句两句能说清!打完,收工。1.建立AS3.0类文件,类文件是干嘛用的?比如说,我们想让一个对象 (Object)有很多功能,比如说这个对象是MovieClip型的,支持拖拽,支持双击等等。那么先在一个类文件里写清楚这些要求和实现方法 ,然后就可以用这个类创建许多实例,这些实例就全具有了这些功能。写一次,就能用很多次,多好。最重要的是它还可以通过继承来重用很多代码,为将来节省更多的时间。废话少说,Ctrl+N打开“新建”窗口,选择建立“ActionScript file”,Ctrl+S,暂存为KingdaMC.as文 件。(即 “有名”的类

16、文件)。输入如下代码:/【黑羽】ActionScript 3.0系列教程(2)/ http:/www.kingda.org/代码如下/package 见讲解1package import flash.display.MovieClip;/讲解2import flash.events.MouseEvent;/讲解3public class KingdaMC extends MovieClip public function KingdaMC() trace(Kingda created: + this.name);this.buttonMode = true;this.addEventListe

17、ner(MouseEvent.CLICK, clickHandler);this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);this.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener);private function clickHandler(event:MouseEvent):void trace(You clicked the ball);function mouseDownListener(event:MouseEvent):void this.star

18、tDrag();function mouseUpListener(event:MouseEvent):void this.stopDrag();讲解1: AS2.0中我们使用的是全饰名称来声明类,通俗说,包括了类的路径在类名前。AS3.0则把路径提取出放在package这个关键字后面。本文例子中的类文件和Fla文件在同一个目录下,因此 package后面没有什么东西。如果类文件在 org目录下的kingda目录里,那么就要写成 /ActionScript 2.0class org.kingda.KingdaMC / ActionScript 3.0package org.kingda publ

19、ic class KingdaMC 你在package中可以定义好几个类,不用再写全饰名称了。但我不推荐这样做。一个文件一个类比较好管理。讲解2:MovieClip类再也不像AS2.0那样是默认的全局类了。你要使用MovieClip类一定要写这一句导入。讲解3:类在AS3.0中也有public 和 internal的区分了。public 表示这个类可以在任何地方导入使用。internal表示这个类只能在同一个package里面使用。不写,就默认为internal这个新的关键字。还有一个属性是final,表示这个类不能被继承了,继承树到此为止。说白了,这三个属性都是用来让我们更加规范的管理类之间

20、的关系,以便将来修改时心里有谱,大大的方便了修改。同时,对架构的设计能力要求更高,新手们和小项目还是多使用public吧。越到后来你会越喜欢internal的。我只要看到internal和private这两个关键字,心中就无比的稳定和舒服。想来不少programmer和我都会有同感吧。2.新建一个元件,并设置它的Linkage和上面的类绑定。和教程第一章一样,画一个方块,按F8转成MovieClip,再在库中右键点击它,选择linkage点击看大图。在 Class里面写上 KingdaMC。注意, id输入框已经被废止了。因为在 AS3.0中,再也没有MovieClip.attachMovie

21、(), MovieClip.createEmptyMovieClip(), 以及 MovieClip.createTextField()的存在了。所有舞台的可见对象都由new来创建。比如说本例中,symbol1绑定了KingdaMC,那么如果我要在舞台上创建一个KingdaMC,只要写var b1:KingdaMC = new KingdaMC();addChild(b1);即可。还记得以前那些乱七八糟的创建影片和组件的语法吗?什么createClassObject(),DepthManager的createChildAtDepth(),createClassChildAtDepth(),等等

22、等等。我的一个java同事刚刚学习AS时,被上面哪些乱乱的创建函数弄得一头雾水。统统没有了。只有一统天下的new ClassName(),多标准哪,多舒服啊,多好学啊。所以说,没学AS2.0直接学AS3.0绝对是新手的福气。第二句,addChild这个很重要。光有第一句new可不行。那只是告诉Flash我建了一个名字叫b1的KingdaMC要显示,但还没告诉Flash什么时候显示呢。你什么时候打addChild(b1),那Flash才会把它显示在舞台上。怎么样,多简单。其实这里省略了一个this。如果你有一个MovieClip名叫BigKingda,希望在这个BigKingda里面加上一个Ki

23、ngdaMC实例,那么就要写BigKingda.addChild(b1);非常简单。Ctrl+Enter测试,发现创建的KingdaMC,支持拖拽。大家试着用代码多创建几个KingdaMC,比如用for循环来建个10个8个的来玩玩。好了,累了,要歇歇了,下次讲Document Class。本节代码例子参考了Jen deHaan的教程,原因很简单,她选的例子很好的说明了绑定和DocumentClass,黑羽做了少量的中文改动。她原来的源码例子点此下载。AS3.0教程(3):Document Class特色为我们带来了什么? Document Class,中文直译为“文档类”。顾名思义,就是和文档

24、绑在一起的类。文档是啥?就是要和这个类绑在一起的Fla文件。什么用处?这个玩意儿根本目的就是想把AS代码和Flash设计完全剥离。从此,Fla里面只管设计,逻辑代码全部由外部的类来包办。对于设计者和新手,黑羽可以打个比方,就好比三步走:1.把Fla里面所有代码集中到第一帧,2.再把第一帧里的代码拷贝到外部的一个as文件里。3.再按照AS3.0的形式,把这些代码放到这个类的构造函数里去。再根据这些个代码抽出一些类的属性和方法就OK了。唔,这个比喻有很多小毛病。但比较直观,比较好理解,一步步来。等你明白有哪些小毛病了,你已经不需要这个破比喻了。对于程序开发者(比如c#)Document Class

25、就好比一个Entry,它的构造函数就相当于一个main函数。教程相关例子下载:点击下载先来一个例子:上次建立的KingdaMC.fla和KingdaMC.as还在吧?删了?重来一遍吧,本次要用到fla里面的加好链接类的元件,以及相关的KingdaMC类文件。我们干两件事:1.新建一个Document Class类。2.用上之前的那个Kingda.fla,绑定Document Class1.新建一个as文件,命名为KingdaMCDocumentClass,记得要和fla在同一目录下:输入如下代码:/因为在统一目录下,所以package后面没有路径package import flash.dis

26、play.MovieClip;public class KingdaMCDocumentClass extends MovieClip private var tempMC:KingdaMC; /临时变量,持有当时创建的KingdaMC的引用。private var MAX_MCS:int = 10; /最多创建的KingdaMC数目/构造函数,和类同名,在 AS3.0中必须为public。不能用private,protected或者自定义的namespacepublic function KingdaMCDocumentClass() var i:int;/新的数据类型int,只要是整数,就

27、请用int。效率快过Number。for (i = 0; i MAX_MCS; i+) tempMC = new KingdaMC ();/以下两行定义创建的KingdaMC形状大小随机tempMC.scaleX = Math.random();tempMC.scaleY = tempMC.scaleX;/以下两行定义创建的KingdaMC位置在舞台上随机。tempMC.x = Math.round(Math.random() * (this.stage.stageWidth - tempMC.width);tempMC.y = Math.round(Math.random() * (this

28、.stage.stageHeight - tempMC.height);addChild(tempMC);它要干的事很简单,就是用我们之前的KingdaMC类在舞台上创建十个KingdaMC实例,大小随机,位置随机。2.用上之前的Kingda.fla,绑定KingdaMCDocumentClass。确保库中已有设好KingdaMC类链接的symbol。设置方法如图:先把第一帧代码全部删掉。Ctrl+Enter测试一把。是不是有十个MC出来啊。然后再像图中那样加上第一帧代码,和舞台元件乐一乐。就是不按照Document Class规 矩干 干,呵呵。那么它到底是什么?简单的说,是一个用来取代原有

29、散乱的时间轴代码的标准解决办法。当一个Fla文件被编译时,Document Class就被主动建立了。我们可以理解为Flash IDE偷偷加上了如下代码:/path表示Document Class的包,如上一节中说过的org.kingda;/DocClass是指Document Class的名字import path.DocClass;var TouTouDe:DocClass = new DocClass();/实例名TouTouDe是我乱写的,哈哈。可能是默认的instance1之类的名字这样的好处是所有的时间轴逻辑都剥离到Document Class类文件中,一旦成为一个独立的类文件,那么很方便的可以和CVS软件结合起来。对团队合作(Designer + Coder)来说是一大利好。对新手和小项目来说,没什么优点和必要。下面说点高级讯息和运用:有什么坏处?坏处大大的有。那是相当的不习惯。所有的舞台上的元件都别直接用属性来命名(比如说随便命名为BigKingda),不然就会出现以下出错讯息:ReferenceError: Error #1056: 无法为 KingdaMCDocumentClass 创建属性 BigKingda。当然这个限制只在与舞台上的元件,在元件类部直接命名子元件没有

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1