flash学习笔记

  • 时间轴是电影剪辑MovieClip 类的实例
  • flash脚本的位置可以放在时间轴上,也可以保存在外部文件上,但是进行类编程时要保存在外部文件中,在时间轴上调用时只需import,但是自己编写的类,需要设置路径,文件/发布设置→flash选项卡→actionscript→设置→类路径
  • ActionScript3.0函数可以分为顶级函数和包函数两大类,顶级函数可以直接调用。全局函数(顶级函数)主要有下面几类
    • trace()函数,输出函数,自动换行,要想多个输出在同一行用trace(str1,str2,。。。),此时以空格作为间隔
    • int()、Number()等类型转换函数
    • isNaN()函数,判断是否为数字
  • 调用函数时,在时间轴上编程可以不理会函数是否在某个包内,但进行类编程时,要使用包内函数必须先到入包。从面向对象的角度,函数分为实例方法和类方法,在时间轴中自定义的函数都属于实例方法,即root的实例方法。
  • 函数可以带任意数量参数,如function test(...arg):void{trace(arg is Array);},结果为TRUE,说明是参数是当做数组处理的,调用时用test(str1,str2,...);注意如果函数有多个参数,任意数量的参数必须写在最后。
  • 变量的作用范围,在函数中用var定义的变量都是局部变量,在函数调用时分配空间,结束后释放,在函数外定义的变量是实例变量,当局部变量和实例变量重名时,在函数内部实例变量被屏蔽,只能通过实例名.变量名访问。
  • 在ActionScript中函数和变量都作为实例的属性,通过实例.属性名就可以访问
  • 函数高级
    • 函数内部内置一个arguments类(实际是数组),数组的元素是函数的参数,arguments[i],表示第i参数,arguments有一个callee属性,表示当前正在执行的函数的引用。
    • 任何函数都是Function类的实例,函数名就是实例名,Function有两个方法,call(),apply();通过call不仅可以调用函数,还可以借用其他函数的属性。P164
    • 动态调用函数,可以同过数组运算符动态调用函数。此时需要加入路径,如
  • flash显示类的架构

显示类根据是否具有交互功能,分为交互类和非交互类,非交互类直接继承显示类,交互类又根据是否能嵌套其他显示实例,分为容器类和非容器类,movieclip类继承sprite类,如果不使用时间轴功能,用sprite类效率更高。

  • flash绘图类(Graphics类)                                                                                                                                         flash绘图通过Graphics实现,它直接继承Object类,Graphics不允许用户自己创建实例,在显示类Shape和Sprite类中具有一个graphics属性,它就是Graphics类的实例,通过 显示实例名.graphics调用。一般使用Shape类来绘图,效率高,当需要图形的交互功能时,考虑使用Sprite类和MovieClip类。
  • 手工创建的实例都被添加到root下,而程序创建的显示实例可以放在root下,也可以放在stage下。
  • 访问下一级实例时,不能通过简单的点语法来访问。当显示列表中的显示实例都是手工创建的影片剪辑实例时,就可以采用点语法一级级访问。因为MovieClip是动态类,通过手工创建的影片剪辑实例的引用会动态添加到属性中。
  • 深度管理:显示对象都在一定的容器中,每个容器可以添加多个显示实例,一个容器的多个显示实例是通过深度来管理的。深度可以理解为显示实例的显示层次,深度越大,显示实例显示的层次越高,就越在上面。深度和创建的顺序有关,后面创建的实例的深度较大。Flash管理深度的方法称为z顺排列,就是用一个数组存放要排序的显示实例,通过数组操作来实现相同的排序功能。即把显示实例放置到一个数组中,当创建第一个显示实例时,这个实例就是数组的第一个元素,元素的索引0就是显示实例的深度,创建多个时方法一样。同时使用程序和手工来创建显示实例,手工创建的显示实例的深度小。显示实例的深度还与图层有关,越上面的图层,深度越大。总结来说:程序创建的显示实例一定比手工创建的大,对于手工创建的实例如果位于同一图层的同一帧,先创建的深度小,如果位于不同的层,上面的层的深度比下面层的深度大。移出深度为0的显示对象时,其他显示对象的深度会自动上移,所以通过遍历移出显示对象时,先移出深度大的对象。
  • this表示指向当前对象,函数体内的this一般指向定义函数的路径,如果在主时间轴定义就指向主时间轴,如果在类中定义就指向类的实例,但通过匿名函数来定义函数时,this的作用范围会有不同,此时直接调用函数时,this指向mc,而作为侦听器函数时,this指向一个全局对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值