FLASH as 3.0 期末复习整理.docx_第1页
FLASH as 3.0 期末复习整理.docx_第2页
FLASH as 3.0 期末复习整理.docx_第3页
FLASH as 3.0 期末复习整理.docx_第4页
FLASH as 3.0 期末复习整理.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一. 基础知识1. 时间轴上代码执行顺序:从左到右,从上到下,从外到里2. MainTimeLine类是动态类,可以动态的添加属性3. 时间轴由图层、帧和播放头组成4. Stage类是静态类,不能向舞台动态的添加属性5. Trace 的使用:可以对程序的运行状态进行跟踪使用“,”分隔,在输出结果中将以空格分隔,eg: trace(“1”,”2”,”3”,”4”); 输出结果:1 2 3 46. Stop();是播放头在该帧停止7. 变量的命名规则变量命名以英文开始,后接数字或字母等,不允许使用 空格 和 问号 等符号。变量命名一般采用 “骆驼命名法”的命名。首字母小写,其他单词的首字母大写,单词其他字母小写。如myText。应该使用具有一定意义的英文单词组合,命名时要尽量做到以最小长度传达最大信息量。如:userName和myAge等。 ActionScript 3.0对大小写敏感,变量名应该区分大小写,如NUM和num表示的是两个不同的变量。同时,变量名不能使用ActionScript 3.0的保留字或关键字,如,true、define和Boolean等。ActionScript 3.0中,声明变量不指定变量类型是允许的声明例子:var i;var i:int;var i:int =9;var a:int=7,b:Blooean=true,c:String=”my exampol”8. 常量常量指的是在程序中固定不变的量。常量可以看作是一种使用const关键字来进行声明的特殊变量public static const gNumber=9.8;分支结构if结构 switch结构switch (expression)case Clause1:statements 1;break;default:statements;二. 函数1. 递归调用: 如果在一个函数中出现了直接或间接调用该函数本身,这就构成了函数的递归调用2. 函数的嵌套:在程序中,如果在一个函数的内部声明了其他的函数,这就形成了函数的嵌套3. 参数(1) 按值或按引用来传递参数function myMullti(a:int ,b :int) :void 函数体 (2) 默认参数 function myTest( m:int,n : int=8, p:int=30) :void /没有默认参数的值被视为必选参数,有,叫做可选参数,可选参数必放在必选参数之后myTest(40)(3) P41 参数(rest):指定一个数组参数以接受任意个以逗号分隔的参数var m:int=0;function test(n:int, abc)(4) 对象arguments三. 类(1) 文档类 (3.0中 类需放在拓展名为as的文件中,这是一个纯文本文件,文件名与类名相同。eg:Test类 ,文件名是 Test.as)(2) 包(p45)(3) 属性与方法:属性默认状态为内部形态,名称以“_”开头eg:packagecalss Exampleprivate var _name:String;public function get_name():String()return _name;(4) 文档类与元件类文档类:l 必须继承至MovieClip或Sprite的类l 类文件 FLA源文件 在同一文件夹中,则在使用时可以直接输入类名。l 不在同一个文件夹,则需要输入文件夹路径四. 事件处理(p56)(1) 事件流: 用于描述事件发生在显示列表中,遍历其所有节点的过程 (用于处理复杂结构事件)l 分为3个阶段:l 捕获阶段:从顶部到目标l 目标阶段l 冒泡阶段:从目标到顶部(2) 处理事件三要素:发送者、接收者、事件l 发送者负责发送事件l 接收者负责接收事件, 事件处理的函数l 处理事件的过程就是调用addEventListener()注册事件基本形式:发送者.addEventListener(事件名,接收者)function 接收者(e:事件类型)移除事件基本形式:发送者.removeEventListener(事件名,接收者)addEventListener(参数1(事件名),参数2(处理函数),参数3(默认为执行冒泡阶段(即为false,设置为true表示捕获阶段),参数4(表示优先级顺序,默认为0),参数5)(3) Event类的target和currentTarget属性都是在事件处理函数中可以获得事件发送者在简单事件处理过程中两者没有区别,但在复杂事件处理过程中两个在不同阶段指向的实例不同l target属性指向单击的目标l currentTarget属性指向当前事件活动对象l 只有目标阶段两者指向同一对象(4) 鼠标常用事件静态属性说明CLICK“click”,单击事件DOUBLE_CLICK“doubleClick”,双击事件MOUSE_DOWN“mouseDown”,鼠标按下事MOUSE_MOVE“mouseMove”,鼠标移动事件MOUSE_OUT“mouseOut”,鼠标移出事件MOUSE_OVER“mouseOver”,鼠标移入事件MOUSE_UP“mouseUp”,鼠标释放事件MOUSE_WHEEL“mouseWheel”,滚动轮事件ROLL_OUT“rollOut”,移出事件ROLL_OVER“rollOver”,移入事件鼠标事件范例(p60)(5) 键盘事件(P72)KeyboardEvent 类KeyboardEvent 对象.charCode /当前字符集中该按键的数值(默认支持ASCII的UTF-8)KeyboardEvent 对象.keyCode /是一个数值对应键盘上的按键。(6) 使用ENRTE_FRAME事件ENTER_FRAME事件是以帧频触发的事件,事件发生的时间间隔由影片的帧频决定。ENTER_FRAME事件是在播放头进入新帧时触发,如果播放头没有移动或是只有一帧,则事件以帧频不断触发。如,当主场景的帧频为12帧/秒时,ENTER_FRAME事件将会在每秒钟发生12次,即使播放头在时间轴上已经停止了,事件将仍然会发生。只有删除了此事件的控制或移除了响应对象后,该事件才会停止。(7) 使用Timer事件(第3章ppt )l timer类实例的创建:var myTimer:Timer=new Timer(间隔时间,重复次数)l Timer类属性running:boolean类型,只读,调用状态时为true,否则为falsecurrentCount:当前调用次数,只读 delay:调用间隔时间,读写 repeatCount:调用次数,读写l Timer类方法:Start():启动调用Stop():停止调用l Timer类事件(p80)调用时发生timer事件结束时发生timerComplete事件五. 对象显示操作(87)显示对象:是指Flash中所有的可视元素。(显示对象(即可视对象):影片剪辑、图形、按钮、文本、补间动画、舞台)容器:可以放置其他显示对象的显示对象。舞台是顶级容器,主时间轴是位于舞台中的一个显示对象。(舞台中的其他显示对象属于主时间轴。)(1) addChild()方法可以将一个子实例添加到显示对象容器中DisplayObjectContainer.addChild(child:DisplayObject) /P89(先使用addChild()方法添加到显示列表中的对象将位于最底层,随后添加的对象将位于前面添加元件的上方。)(2) 使用addChildAt()方法添加视觉元件DisplayObjectContainer.addChildAT(child:DisplayObject,index:int);(3) 删除显示对象DisplayObjectContainer.removeChild(child:DisplayObject);DisplayObjectContainer.removeChildAt(index:int);EG: var ballA:Ball=new Ball1 (); var ballB:Ball=new Ball2 (); var ballC:Ball=new Ball3 (); stage.addChildAt(ballA,0); stage.addChilaAt(ballB,1); stage.addChildAt(ballC,3);stage.removeChild(0);(4) 显示对象的深度管理(P95)DisplayObjectContainer.setChildIndex(child:DisplayObject,index:int)DisplayObjectContainer 表示需要更改索引编号的的显示子对象实例,index 表示需要更改的索引编号(5) 动态获取显示对象(P100)getChildAt(index:int)getChildByName(name:String)(6) 设置对象的位置、大小和角度对象.x=475; 对象.y=300;width属性和height属性scaleX属性和scaleY属性,这2个属性值是显示对象与原始大小相比的相对百分比。将一个名为myObject的显示对象顺时针旋转60,可以使用下面的语句:myObject.rotation=60(7) 设置对象的颜色和透明度使用color属性设置对象颜色(P 110)使用乘数属性和偏移属性设置对象颜色设置对象的透明度(8) 显示对象的碰撞检测使用hitTestObject()方法(P118)eg:判断显示对象ObjectA与ObjectB是否接触if(objectA.hitTestObject(Object) statements; )它们接触了,则该方法将返回true,否则为false。hitTestObject()方法检测,Flash player会将两个显示对象都看作单一的矩形,检测不精确。使用hitTestObject()方法来检测碰撞的优势也很明显,那就是其处理速度很快。(9) 使用hitTestPoint()方法通过调入指定的x和y坐标值来检查对象与像素点是否发生了重叠。当要检测的对象中存在着空白部分时,使用该方法能够精确地确定对象是否在某点处发生了重叠。 要检测实例名为objectA的对象是否在(x,y)处发生碰撞,可以使用下面的语句。bjectA.hitTestPoint(x,y,shapeflag);(10) 使用遮罩(P125)要为一个显示对象(如实例名为mySprite的对象)指明另一个显示对象(如实例名为maskSprite的对象)作为遮罩,只需要被遮罩对象的mask属性值设置为遮罩对象即可,如下面语句所示。mySprite.mask=maskSprite;如果要删除遮罩,可以将mask属性设置为null,如下所示。mySprite.mask=null;六. 控制影片的播放(P129)使播放头跳转到特定场景的特定帧开始播放,可以使用下面的语句。gotoAndPlay(frame, scene)(1) MovieClip类的常用属性(134)currentFrame、totalFrames、currentLabel、currentLabels、currentScene、scenes、frameLoaded、enabled、trackAsMenu(2) 使用帧频(139)(3) 设置舞台的大小Stage的displayState属性可以设置播放窗口的模式属性设置为StageDisplayState.FULL_SCREEN时全屏属性设置为StageDisplayState.NORMAL时普通Stage.scaleMode1. StageScaleMode.EXACT_FIT显示全部,可能变形2. StageScaleMode.SHOW_ALL显示全部,并保持高度比例,两侧可能出现边框3. StageScaleMode.NO_BOARDER填充不扭曲,内容大时进行剪切4. StageScaleMode.NO_SCALE 固定大小(4) 舞台上影片剪辑之间的相互控制eg: 在舞台上放置两个影片剪辑,它们的实例名分别为mcA和mcB。如果希望在mcB的时间轴上放置代码控制mcA影片剪辑播放,使用root属性指定影片剪辑对象有下面3种方法来实现操作。Obejcet(root).mcA.play()或MovieClip(root).mcA.play()或(root as MovieClip).mcA.play()(5) 自定义上下文菜单(154)七. 使用文本(1) 获取指定位置的字符charAt()方法将返回指定位置处的字符:charAt(index:Number)chartCodeAt()方法将返回指定位置处字符的Uncode代码:charCodeAt(index:Number)(2) 获取指定数量的字符String 类 中substr()方法可以按指定的数值从起始索引参数的位置开始截取子字符串:substr(startIndex:Number,len:Number)Stringsubstring()方法substring(startIndex:Number,endIndex:Number)(3) 查找字符串String类中indexOf()方法能够在字符串中寻找特定的子字符串,如果找到了该子字符串,将会返回子字符串的第一个字符的索引值,如果没有找到,则传回值-1string.indexOf(val:String,startIndex:Number)String类中 lastIndexOf()方法可以在字符串中寻找特定的子字符串(4) 显示文本 (176)var txt:TextField=new TextField()stage.addChild(txt)TextField类的属性:antiAliasType 、autoSize、background、backgroundColor、blendMode、border、borderColor、sharpness、text、textColor、textHeight、textWidth、type、thickness。 文本跟随实例(176)(5) 设置文本格式格式如下:setTextFormat(format,beginIndex,endIndex)其中format:TextFormat对象。 /先需要使用new TextFormat()方法创建beginIndex ,endIndex :数字,指定所需文本范围内第一、最后个字符的从零开始的索引位置。默认值为-1。(6) 文本域的常见操作(183)用户登录界面实例(186)八. 数组和时间的运用(1) 创建数组var arr=new Array();var arr:Array=new Array();var myArray=new Array(“a”,”b”,”c”,”d”);var myArray:Array=new Array(“a”,”b”,”c”,”d”);(2) 数组增删push()方法,在数组的末尾添加新的元素pop()方法,删除数组最后一个元素unshift()方法,在数组的开头插入元素shift()方法,删除数字开头的元素splice()方法,删除数组中任意位置的元素数组实际上是一系列的有序数据的集合,用户需要对数组中的元素进行重新排序reverse()方法能够使数组反序排列,使数组的首位变为末位,末位变为首位。Array类的sort()方法能够对数组中的元素进行排序,该方法将按照Unicode值来排序,排序将区分大小写,如Z将排在a的前面。sortOn()方法对数组内部的对象元素的各个属性来进行排序。(3) 提取数组中的元素(225)slice(startIndex:int,endIndex:int)(4) 获取时间Date类获取本地时间的方法,它们是getHours()方法、getMinutes()方法、getSeconds()方法和getMilliseconds()方法。Date类同getUTCHours()方法、getUTCMinutes()方法、getUTCSeconds()方法和getUTCMilliseconds()方法,它们能按照通用时间(即UTC)返回Date对象中的小时值、分钟值、秒值和毫秒值。(5) 设置时间myYear.setFullYear(year:Number,month:Number,day:Number)myMonth.setMonth(month:Number,day:Number)myDate.setDate(date:Number)Data类的setTime()方法可用于设置Date对象中的日期和时间值,在使用时必须给定一个自1970年1月1日午夜0时开始到特定日期所经过的毫秒值。其语法结构如下所示。now.setTime(millisecond:Number)九. 位图与滤镜Bitmap对象用于位图的显示常用的属性有3个:bitmapData、pixelSnapping、smoothing。BitmapData类,对位图进行操作常用的属性有4个:width、height、rect、transparent。(1) 几种位图显示实现位图对象的显示:var myBitmapDataObject:BitmapData= new BitmapData(100,100,false,0x0000ff);var myBitmapObject:Bitmap=new Bitmap(myBitmapDataObject);addChild(myBitmapObject);如果在“库”面板中已经放置位图,则可以通过代码将该对象导入到舞台上使其显示。具体的代码:var myBitmap:bitmapA=new bitmapA();var myBitmapObject:Bitmap=new Bitmap();myBitmapObject.bitmapData=myBitmap;addChild(myBitmapObject);如果需要加载外部位图文件,可以使用下面的语句来实现 var loader:Loader=new Loader()var urlReq:URLRequest=new URLRequest(“Picture.jpg”)loader.load(urlReq)addChild(loader);(2) 设置像素颜色:BitmapData类的setPixel()或setPixel32()方法可以对位图中单个像素颜色进行修改setPixel(x:int,y:int,color:unit)更改Alpha通道值,可以使用setPixel32()方法setPixel32(x:int,y:int,color:unit)获得BitmapData对象某个像素点的颜色值:getPixel(x:int,y:int) 使用merge()方法能够将两幅图像的RGB通道和Alpha通道进行混合,以获得与众不同的颜色效果merge(sourceBitmapData:BitmapData,sourceRect:Rectangle,destPoint:Point,redMultiplier:uint,greenMultiplier:uint,blueMultiplier:uint,alphaMultiplier:uint)(3) 复制位图l clone()方法可以用于对原始实例的克隆,其将返回一个新的BitmapData对象,clone();l copyPixels()方法能够将源图像的矩形区域复制到目标BitmapData对象的目标点处copyPixels(sourceBitmapData:BitmapData,sourceRect:Rectangle,destPoint:Point,alphaBitmapData:BitmapData, alphaPoint:Point,mergeAlpha:Boolean)l 使用copyChannel()方法可以将数据从一个BitmapData对象的一个通道传输到当前的BitmapData对象的某个通道中copyChannel(sourceBitmapData:BitmapData,sourceRect:Rectangle,destPoint:Point,sourceChannel:uint,destChannel:uint)BitmapData类提供了一个scroll()方法,该方法可以复制屏幕上的位图,将其粘贴到由参数指定的新偏移位置。如果位图有部分位于舞台之外,则可以产生图像移位的效果scroll(x:int,y:int)(4) 绘制像素BitMapData类提供了draw()方法,该方法能够使用Flash运行时矢量渲染器在位图图像上绘制图像draw(source:IBitmapDrawable,matrix:Matrixl,colorTransform:ColorTransforml,blendMode:String ,clipRect:Rectangl,smoothing:Boolean)(5) 基于像素的碰撞检测BitmapData类中的hitTest()方法,该方法能够对显示对象进行像素级的碰撞检测,可以使碰撞检测更加精确。BitmapData类的hitTest()方法能够比较两个BitmapData对象,指出它们的像素是否发生了重叠。BitmapData类的hitTest()方法的语法结构如下bitmapObject.hitTest(firstPoint:Piont,firstAlphaThreshold:unit,secondObject:Object,secondBitmapDataPoint:Point=null,secodnAlphaThreshold:unit=1)十. 绘制图形绘制线条1) 绘制线条,首先需要设置线条的样式,Graphics类的lineSyle()方法,可以指定线条样式lineStyle(thickness:Number,color:unit,alpha:Number,pixlHinting:Boolean,sc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论