actionScript 3.0 简介

来源:互联网 发布:北京工商网络申请平台 编辑:程序博客网 时间:2024/06/05 06:59


         ActionScript 3.0是一种基于ECMA-262规范的脚本语言,它是 Adobe 公司在2006年发布 Flex 2 时提出来的,Flex 允许开发者创建的 Flash Player 程序和 Flash 一样。但是,Flash 却给我们提供了更加直观的界面,因此它就更适合用作游戏开发。

    ActionScript是在Flash4发布的时候提出来的,当时的名称就叫做ActionScript,他的主要能是用来控制帧的跳转 和鼠标,键盘的交互。直到发布Flash5之后,ActionScript才正式地作为ActionScript1.0使用,但是它的发展速度相当快,到 了Flash MX2004(Flash 7),就引进了ActionScript2.0,它遵循ECMA标准,在面向对象编程方面,它开始变得逐步强大。像应用于浏览器的JavaScript, 也是基于ECMA标准的。

     注:Flash 9/10  播放器内部建有2套虚拟机,AVM1用来执行ActionScript1.0和2.0代码,AVM2用来执行ActionScript3.0代码,但是AVM2的速度要比AVM1快得多。
  
    一、标识符

  标识符是什么呢?简单的理解就是我们每定义一个变量,那么这个变量就称之为标识符,在ActionScript 3.0中,不能使用关键字和保留字作为标识符。包括变量名、类名、方法名等。

  二、关键字

  在ActionScript 3.0中,保留字包括“关键字”,我们不能在代码中将他们用作标识符。下图列出ActionScript 3.0中的关键字。详细大家可以查看官方提供的文档,这里我就不一一列出,文章尾我给出了ActionScript 3.0语言和组件参考在线文档的连接,下面是ActinScript 3.0关键字在线文档地址:

  http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/statements.html

  三、数据类型

  数据是程序的必要组成部分,也是程序处理的对象。数据类型描述一个数据片段,以及可以对其执行的各种操作。数据存储在变量中,在创建变量、对象实例和函数定义时,通过使用数据类型类指定要使用的数据的类型。数据类型是对程序所处理的数据的抽象。

  在ActionScript 3.0中包含两种数据类型:基本数据类型(Primitive data type)和复杂数据类型(Complex data type).下面列出比较常用的数据类型:

1、Boolean:布尔型,它可以使用 true 或 false(用于进行逻辑运算)两个值中一个值。

  2、int:表示为 32 位带符号整数的数据类型。 int 类表示的值的范围是:-2,147,483,648 (-2^31) 到 2,147,483,647 (2^31-1)。

  3、uint:表示 32 位无符号整数的数据类型的方法。

  4、String:表示一串字符的数据类型。

  5、Number:表示 IEEE-754 双精度浮点数的数据类型。

  6、.Date:表示日期和时间信息。

  7、……..

  四、运算符

  详细请查看官方在线文档:http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/operators.html

  五、常量和变量

  在ActionScript 3.0中使用常量和变量和其他的编程开发语言一样,没什么太大的区别,作用点都是相同的。简单理解就是常量就是值不会改变的量,变量则相反。

  在AS3.0中常量也可以分为两种:顶级常量和用户自定义常量。所谓顶级常量就是语言库内部所提供的常量,他们是:

  1、Infinity:表示正无穷大

  2、-Infinity:表示负无穷大

  3、NaN:表示非数字的值

  4、undefined:一个适用于尚未初始化的无类型变量或未初始化的动态对象属性的特殊值。

  其次便是用户自定义的常量了,通常使用关键字const来定义。

  不管是在什么编程语言中,变量是用得最多的,在ActionScript 3.0中也同样如此。那么在AS3.0中的变量怎么定义呢?变量定义格式为:

var 变量名:数据类型  或

var 变量名:数据类型=初始值 . 如下变量示例:

  例,定义一个字符串变量myString并赋初值为”AS3.0入门”:

  var myString:String = “AS3.0入门”;

  

使用影片剪辑

如果你在库中有一个影片剪辑,想把它添加到舞台上的话,有两种方法可供选择:
第一种方法:
先把这个影片剪辑从库中拖放到舞台上,在属性面板上取一个实例名称,例如mymc1,然后你就可以通过代码来控制舞台上这个影片剪辑的相关属性了。下面代码定义该影片剪辑的坐标为(300,200):

复制代码

  1. mymc1.x=300;
  2. mymc1.y=200;

第二种方法:
用纯代码来操作。首先,在库中选中影片剪辑,点击“右键”->“链接”后出现链接属性对话框,选中“链接”->“为ActionScript 导出”,然后设置一个类名即可,例如Gougou(注意,类名首字母一般为大写)。现在我们就用纯代码的形式把库中的这个影片剪辑添加到舞台上。对此,我 们先声明一个变量作为该对象的实例,然后用addChild把它添加到显示列表。代码如下:

复制代码

  1. var myGougou:Gougou=new Gougou();
  2. addChild(myGougou);

因为我们没有设置这个影片剪辑的任何属性,所以它默认在舞台上的(0,0)位置显示。我们可以用这个实例的x,y属性来设置它的坐标,用rotation属性来设置这个对象的旋转度数:

复制代码

  1. var myGougou:Gougou=new Gougou();
  2. myGougou.x=275;
  3. myGougou.y=150;
  4. myGougou.rotation=10;
  5. addChild(myGougou);

用上面的代码把影片剪辑添加到舞台上看起来比较繁琐,但是用代码可以很容易地生成多个此影片剪辑的副本,并把他们添加到舞台上。下面我们让Gougout影片剪辑生成10个副本,从左到右间隔50个像素水平排列,并把这个对象缩放为50%。代码如下:

复制代码

  1. for(var i=0;i<10;i++){
  2. var xGougou:Gougou=new Gougou();
  3. xGougou.x=50*i+50;
  4. xGougou.y=300;
  5. xGougou.z=150*i+50;
  6. xGougou.scaleX=.5;
  7. xGougou.scaleY=.5;
  8. addChild(xGougou);
  9. }

测试上面两段代码,你可以看到,第一个对象Gougou在上面,坐标是(275,100),下面的Gougous生成了10个副本,横坐标从50到500依次展开,纵坐标是300,缩放率为50%.

复制代码

  1. for(var i=0;i<3;i++){for(var j=0;j<3;j++){for(var k=0;k<3;k++){
  2. var xGougou:Gougou=new Gougou();
  3. xGougou.x=50*i+50;
  4. xGougou.y=50*j+300;
  5. xGougou.z=150*k+50;
  6. xGougou.scaleX=.5;
  7. xGougou.scaleY=.5;
  8. addChild(xGougou);
  9. }
  10. }
  11. }
MovieClip 的 公共属性

  属性 定义方
   accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。  DisplayObject
   alpha : Number
指示指定对象的 Alpha 透明度值。 DisplayObject
   blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。 DisplayObject
   blendShader : Shader
[只写] 设置用于混合前景和背景的着色器。 DisplayObject
   buttonMode : Boolean
指定此 sprite 的按钮模式。  Sprite
   cacheAsBitmap : Boolean
如果设置为 true,则 Flash Player 将缓存显示对象的内部位图表示形式。 DisplayObject
   constructor : Object
对类对象或给定对象实例的构造函数的引用。 Object
   contextMenu : ContextMenu
指定与此对象相关联的上下文菜单。 InteractiveObject
    currentFrame : int
[只读 (read-only)] 指定播放头在 MovieClip 实例的时间轴中所处的帧的编号。  MovieClip
    currentFrameLabel : String
[只读 (read-only)] MovieClip 实例的时间轴中当前帧上的标签。 MovieClip
    currentLabel : String
[只读 (read-only)] 在 MovieClip 实例的时间轴中播放头所在的当前标签。  MovieClip
    currentLabels : Array
[只读 (read-only)] 返回由当前场景的 FrameLabel 对象组成的数组。  MovieClip
    currentScene : Scene
[只读 (read-only)] 在 MovieClip 实例的时间轴中播放头所在的当前场景。 MovieClip
   doubleClickEnabled : Boolean
指定此对象是否接收 doubleClick 事件。 InteractiveObject
   dropTarget : DisplayObject
[只读 (read-only)] 指定拖动 sprite 时经过的显示对象,或放置 sprite 的显示对象。 Sprite
    enabled : Boolean
一个布尔值,指示影片剪辑是否处于活动状态。  MovieClip
   filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。  DisplayObject
   focusRect : Object
指定此对象是否显示焦点矩形。  InteractiveObject
    framesLoaded : int
[只读 (read-only)] 从流式 SWF 文件加载的帧数。  MovieClip
   graphics : Graphics
[只读 (read-only)] 指定属于此 sprite 的 Graphics 对象,在此 sprite 中可执行矢量绘画命令。 Sprite
   height : Number
指示显示对象的高度,以像素为单位。 DisplayObject
   hitArea : Sprite
指定一个 sprite 用作另一个 sprite 的点击区域。  Sprite
   loaderInfo : LoaderInfo
[只读 (read-only)] 返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 DisplayObject
   mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。 DisplayObject
   mouseChildren : Boolean
确定对象的子项是否支持鼠标。  DisplayObjectContainer
   mouseEnabled : Boolean
指定此对象是否接收鼠标消息。  InteractiveObject
   mouseX : Number
[只读 (read-only)] 指示鼠标位置的 x 坐标,以像素为单位。 DisplayObject
   mouseY : Number
[只读 (read-only)] 指示鼠标位置的 y 坐标,以像素为单位。 DisplayObject
   name : String
指示 DisplayObject 的实例名称。 DisplayObject
   numChildren : int
[只读 (read-only)] 返回此对象的子项数目。 DisplayObjectContainer
   opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。  DisplayObject
   parent : DisplayObjectContainer
[只读 (read-only)] 指示包含此显示对象的 DisplayObjectContainer 对象。 DisplayObject
   prototype : Object
[静态] 对类或函数对象的原型对象的引用。 Object
   root : DisplayObject
[只读 (read-only)] 对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 DisplayObject
   rotation : Number
指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 DisplayObject
   rotationX : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。 DisplayObject
   rotationY : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。 DisplayObject
   rotationZ : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。 DisplayObject
   scale9Grid : Rectangle
当前有效的缩放网格。  DisplayObject
   scaleX : Number
指示从注册点开始应用的对象的水平缩放比例(百分比)。 DisplayObject
   scaleY : Number
指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 DisplayObject
   scaleZ : Number
指示从对象的注册点开始应用的对象的深度缩放比例(百分比)。 DisplayObject
    scenes : Array
[只读 (read-only)] 一个由 Scene 对象组成的数组,每个对象都列出了 MovieClip 实例中场景的名称、帧数和帧标签。 MovieClip
   scrollRect : Rectangle
显示对象的滚动矩形范围。  DisplayObject
   soundTransform : SoundTransform
控制此 sprite 中的声音。 Sprite
   stage : Stage
[只读 (read-only)] 显示对象的舞台。  DisplayObject
   tabChildren : Boolean
确定对象的子项是否支持 Tab 键。  DisplayObjectContainer
   tabEnabled : Boolean
指定此对象是否遵循 Tab 键顺序。  InteractiveObject
   tabIndex : int
指定 SWF 文件中的对象按 Tab 键顺序排列。 InteractiveObject
   textSnapshot : TextSnapshot
[只读 (read-only)] 返回此 DisplayObjectContainer 实例的 TextSnapshot 对象。 DisplayObjectContainer
    totalFrames : int
[只读 (read-only)] MovieClip 实例中帧的总数。 MovieClip
    trackAsMenu : Boolean
指示属于 SimpleButton 或 MovieClip 对象的其它显示对象是否可以接收鼠标释放事件。 MovieClip
   transform : Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 DisplayObject
   useHandCursor : Boolean
布尔值,指示当鼠标滑过其 buttonMode 属性设置为 true 的 sprite 时是否显示手指形(手形光标)。 Sprite
   visible : Boolean
显示对象是否可见。  DisplayObject
   width : Number
指示显示对象的宽度,以像素为单位。 DisplayObject
   x : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 DisplayObject
   y : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 DisplayObject
   z : Number
指示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。
MovieClip 的 公共方法

  MovieClip()
创建新的 MovieClip 实例。 MovieClip
   addChild(child:DisplayObject):DisplayObject
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。  DisplayObjectContainer
   addChildAt(child:DisplayObject, index:int):DisplayObject
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。  DisplayObjectContainer
   addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 EventDispatcher
   areInaccessibleObjectsUnderPoint(point:Point):Boolean
指示安全限制是否会导致出现以下情况:在列表中忽略了使用指定 point 点调用 DisplayObjectContainer.getObjectsUnderPoint() 方法时返回的所有显示对象。 DisplayObjectContainer
   contains(child:DisplayObject):Boolean
确定指定显示对象是 DisplayObjectContainer 实例的子项还是该实例本身。  DisplayObjectContainer
   dispatchEvent(event:Event):Boolean
将事件调度到事件流中。  EventDispatcher
   getBounds(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 DisplayObject
   getChildAt(index:int):DisplayObject
返回位于指定索引处的子显示对象实例。 DisplayObjectContainer
   getChildByName(name:String):DisplayObject
返回具有指定名称的子显示对象。  DisplayObjectContainer
   getChildIndex(child:DisplayObject):int
返回 DisplayObject 的 child 实例的索引位置。 DisplayObjectContainer
   getObjectsUnderPoint(point:Point):Array
返回对象的数组,这些对象位于指定点下,并且是该 DisplayObjectContainer 实例的子项(或孙子项,依此类推)。 DisplayObjectContainer
   getRect(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 DisplayObject
   globalToLocal(point:Point):Point
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 DisplayObject
   globalToLocal3D(point:Point):Vector3D
将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。 DisplayObject
    gotoAndPlay(frame:Object, scene:String = null):void
从指定帧开始播放 SWF 文件。 MovieClip
    gotoAndStop(frame:Object, scene:String = null):void
将播放头移到影片剪辑的指定帧并停在那里。  MovieClip
   hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 EventDispatcher
   hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。  Object
   hitTestObject(obj:DisplayObject):Boolean
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。 DisplayObject
   hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 DisplayObject
   isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。  Object
   local3DToGlobal(point3d:Vector3D):Point
将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。 DisplayObject
   localToGlobal(point:Point):Point
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 DisplayObject
    nextFrame():void
将播放头转到下一帧并停止。  MovieClip
    nextScene():void
将播放头移动到 MovieClip 实例的下一场景。  MovieClip
    play():void
在影片剪辑的时间轴中移动播放头。 MovieClip
    prevFrame():void
将播放头转到前一帧并停止。  MovieClip
    prevScene():void
将播放头移动到 MovieClip 实例的前一场景。  MovieClip
   propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。  Object
   removeChild(child:DisplayObject):DisplayObject
从 DisplayObjectContainer 实例的子列表中删除指定的 child DisplayObject 实例。 DisplayObjectContainer
   removeChildAt(index:int):DisplayObject
从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject。 DisplayObjectContainer
   removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。 EventDispatcher
   setChildIndex(child:DisplayObject, index:int):void
更改现有子项在显示对象容器中的位置。  DisplayObjectContainer
   setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。 Object
   startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
允许用户拖动指定的 Sprite。 Sprite
    stop():void
停止影片剪辑中的播放头。 MovieClip
   stopDrag():void
结束 startDrag() 方法。 Sprite
   swapChildren(child1:DisplayObject, child2:DisplayObject):void
交换两个指定子对象的 Z 轴顺序(从前到后顺序)。  DisplayObjectContainer
   swapChildrenAt(index1:int, index2:int):void
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。 DisplayObjectContainer
   toString():String
返回指定对象的字符串表示形式。 Object
   valueOf():Object
返回指定对象的原始值。 Object
   willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 EventDispatcher
MovieClip 的 公共事件

activate [广播事件] Flash Player 获得操作系统焦点并变为活动状态时调度。 EventDispatcher
   added 将显示对象添加到显示列表中时调度。 DisplayObject
   addedToStage 在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 DisplayObject
   clear 当用户从文本上下文菜单中选择“清除”(或“删除”)时调度。 InteractiveObject
   click 用户在同一 InteractiveObject 上按下并释放用户指针设备的主按钮时调度。 InteractiveObject
   copy 当用户激活特定于平台的复制操作的快捷键组合或从文本上下文菜单中选择“复制”时调度。 InteractiveObject
   cut 当用户激活特定于平台的剪切操作的快捷键组合或从文本上下文菜单中选择“剪切”时调度。 InteractiveObject
   deactivate [广播事件] 当 Flash Player 失去操作系统焦点并变为非活动状态时调度。 EventDispatcher
   doubleClick 如果 InteractiveObject 的 doubleClickEnabled 标志设置为 true,当用户在该对象上快速连续按下两次并释放指针设备的主按钮时调度。 InteractiveObject
   enterFrame [播放事件] 播放头进入新帧时调度。 DisplayObject
   exitFrame [广播事件] 播放头退出当前帧时调度。 DisplayObject
   focusIn 显示对象获得焦点后调度。 InteractiveObject
   focusOut 显示对象失去焦点后调度。 InteractiveObject
   frameConstructed [广播事件] 在帧显示对象的构造函数运行之后但在帧脚本运行之前调度。 DisplayObject
   keyDown 用户按下某个键时调度。 InteractiveObject
   keyFocusChange 用户尝试使用键盘导航更改焦点时调度。 InteractiveObject
   keyUp 用户释放某个键时调度。 InteractiveObject
   mouseDown 在 Flash Player 窗口中,用户在 InteractiveObject 实例上按下指针设备按钮时调度。 InteractiveObject
   mouseFocusChange 用户尝试使用指针设备更改焦点时调度。 InteractiveObject
   mouseMove 用户移动 InteractiveObject 上的指针设备时调度。 InteractiveObject
   mouseOut 用户将指针设备从 InteractiveObject 实例上移开时调度。 InteractiveObject
   mouseOver 在 Flash Player 窗口中,用户将指针设备移动到 InteractiveObject 实例上时调度。 InteractiveObject
   mouseUp 在 Flash Player 窗口中,用户在 InteractiveObject 实例上释放指针设备按钮时调度。 InteractiveObject
   mouseWheel 在 Flash Player 窗口中,鼠标滚轮滚动到 InteractiveObject 实例上时调度。 InteractiveObject
   paste 当用户激活特定于平台的粘贴操作的快捷键组合或从文本上下文菜单中选择“粘贴”时调度。 InteractiveObject
   removed 将要从显示列表中删除显示对象时调度。 DisplayObject
   removedFromStage 在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 DisplayObject
   render [广播事件] 将要更新和呈现显示列表时调度。 DisplayObject
   rollOut 用户将指针设备从 InteractiveObject 实例上移开时调度。 InteractiveObject
   rollOver 用户将指针设备移动到 InteractiveObject 实例上时调度。 InteractiveObject
   selectAll 当用户激活特定于平台的全选操作的快捷键组合或从文本上下文菜单中选择“全选”时调度。 InteractiveObject
   tabChildrenChange 对象的 tabChildren 标志值发生更改时调度。 InteractiveObject
   tabEnabledChange 对象的 tabEnabled 标志发生更改时调度。 InteractiveObject
   tabIndexChange 对象的 tabIndex 属性值发生更改时调度。 InteractiveObject
MovieClip 的属性与方法的详细性息

属性详细信息
currentFrame 属性

currentFrame:int  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

指定播放头在 MovieClip 实例的时间轴中所处的帧的编号。 如果影片剪辑有多个场景,该值是当前场景中的帧编号。

实现
    public function get currentFrame():int

示例

下面的代码使用 gotoAndStop() 方法和 currentFrame 属性指示 mc1 影片剪辑的播放头从其当前位置前进 5 帧并停止:
mc1.gotoAndStop(mc1.currentFrame + 5);currentFrameLabel 属性  

currentFrameLabel:String  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  Flash Player 10, AIR 1.5

MovieClip 实例的时间轴中当前帧上的标签。如果当前帧没有标签,则 currentLabel 为 null。

实现
    public function get currentFrameLabel():String

currentLabel 属性  

currentLabel:String  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

在 MovieClip 实例的时间轴中播放头所在的当前标签。 如果当前帧没有标签,currentLabel 将被设置为包含标签的先前帧的名称。 如果当前帧和先前帧都不包含标签,currentLabel 返回 null。

实现
    public function get currentLabel():String

示例

以下代码说明如何访问名为 mc1 的 MovieClip 对象的 currentLabel 属性:
trace(mc1.currentLabel);currentLabels 属性  

currentLabels:Array  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

返回由当前场景的 FrameLabel 对象组成的数组。 如果 MovieClip 实例不使用场景,数组会包括整个 MovieClip 实例的所有帧标签。

实现
    public function get currentLabels():Array

另请参见

flash.display.FrameLabel

示例

以下代码说明如何使用名为 mc1 的 MovieClip 对象的 currentLabels 属性:
import flash.display.FrameLabel;

var labels:Array = mc1.currentLabels;

for (var i:uint = 0; i < labels.length; i++) {
    var label:FrameLabel = labels;
    trace(”frame ” + label.frame + “: ” + label.name);
}currentScene 属性  

currentScene:Scene  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

在 MovieClip 实例的时间轴中播放头所在的当前场景。

实现
    public function get currentScene():Scene

另请参见

Scene

示例

以下代码说明如何使用名为 mc1 的 MovieClip 对象的 currentScene 属性:
import flash.display.Scene;

var scene:Scene = mc1.currentScene;
trace(scene.name + “: ” + scene.numFrames + ” frames”);enabled 属性  

enabled:Boolean  [读写]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

一个布尔值,指示影片剪辑是否处于活动状态。 enabled 的默认值是 true。 如果将 enabled 设置为 false,则会禁用影片剪辑的 Over、Down 和 Up 帧。 影片剪辑会继续接收事件(例如 mouseDown、mouseUp、keyDown 和 keyUp)。

enabled 属性仅控制影片剪辑的按钮式属性。 可以随时更改 enabled 属性;修改后的影片剪辑将被立即启用或禁用。 如果将 enabled 属性设置为 false,则该对象将不包含在 Tab 键的自动排序中。

实现
    public function get enabled():Boolean
    public function set enabled(value:Boolean):void

示例

以下代码说明如何使用 enabled 属性来禁用名为 mc1 的 MovieClip 对象的按钮式属性:
mc1.enabled = false;framesLoaded 属性  

framesLoaded:int  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

从流式 SWF 文件加载的帧数。 可以使用 framesLoaded 属性来确定特定帧及其前面所有帧的内容是否已经加载,并且是否可在浏览器中供本地使用。可以使用它监视大 SWF 文件的下载。 例如,可能需要向用户显示一条消息以表明在完成 SWF 文件中指定帧的加载前,SWF 文件将会一直进行加载。

如果影片剪辑包含多个场景,framesLoaded 属性会返回为影片剪辑中所有 场景加载的帧数。

实现
    public function get framesLoaded():int

另请参见

Loader class

示例

以下代码说明如何使用 framesLoaded 属性和 totalFrames 属性来确定名为 mc1 的流式 MovieClip 对象是否已完全加载:
if (mc1.framesLoaded == mc1.totalFrames) {
    trace(”OK.”);
}scenes 属性  

scenes:Array  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

一个由 Scene 对象组成的数组,每个对象都列出了 MovieClip 实例中场景的名称、帧数和帧标签。

实现
    public function get scenes():Array

另请参见

Scene

示例

以下代码说明如何使用名为 mc1 的 MovieClip 对象的 scenes 属性:
import flash.display.Scene;

for (var i:uint = 0; i < mc1.scenes.length; i++) {
    var scene:Scene = mc1.scenes;
    trace(”scene ” + scene.name + “: ” + scene.numFrames + ” frames”);
}totalFrames 属性  

totalFrames:int  [只读 (read-only)]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

MovieClip 实例中帧的总数。

如果影片剪辑包含多个帧,totalFrames 属性会返回影片剪辑中的所有 场景中的帧的总数。

实现
    public function get totalFrames():int

示例

以下代码说明如何使用名为 mc1 的 MovieClip 对象的 totalFrames 属性:
trace(mc1.totalFrames);trackAsMenu 属性  

trackAsMenu:Boolean  [读写]

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

指示属于 SimpleButton 或 MovieClip 对象的其它显示对象是否可以接收鼠标释放事件。 trackAsMenu 属性允许您创建菜单。 可以对任何 SimpleButton 或 MovieClip 对象设置 trackAsMenu 属性。 trackAsMenu 属性的默认值是 false。

可以随时更改 trackAsMenu 属性;修改后的影片剪辑会立即使用新的行为。

实现
    public function get trackAsMenu():Boolean
    public function set trackAsMenu(value:Boolean):void

示例

以下代码说明如何使用 trackAsMenu 属性来启用名为 mc1 的 MovieClip 对象的鼠标释放事件:
mc1.trackAsMenu = true;构造函数详细信息
MovieClip () 构造函数

public function MovieClip()

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

创建新的 MovieClip 实例。 创建 MovieClip 之后,调用舞台上的显示对象容器的 addChild() 或 addChildAt() 方法。

方法详细信息
gotoAndPlay () 方法

public function gotoAndPlay(frame:Object, scene:String = null):void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

从指定帧开始播放 SWF 文件。 这会在帧中的所有剩余动作执行完毕后发生。 要指定场景以及帧,请指定 scene 参数的值。

参数  frame:Object — 表示播放头转到的帧编号的数字,或者表示播放头转到的帧标签的字符串。 如果您指定了一个数字,则该数字是相对于您指定的场景的。 如果不指定场景,Flash Player 使用当前场景来确定要播放的全局帧编号。 如果指定场景,播放头会跳到指定场景的帧编号。  
  
scene:String (default = null) — 要播放的场景的名称。 此参数是可选的。  

示例

下面的代码使用 gotoAndPlay() 方法指示 mc1 影片剪辑的播放头从其当前位置前进 5 帧:
mc1.gotoAndPlay(mc1.currentFrame + 5);
——————————————————————————–

下面的代码使用 gotoAndPlay() 方法指示 mc1 影片剪辑的播放头移到名为 “Scene 12″ 的场景中标记为 “intro” 的帧:
mc1.gotoAndPlay(”intro”, “Scene 12″);gotoAndStop () 方法  

public function gotoAndStop(frame:Object, scene:String = null):void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

将播放头移到影片剪辑的指定帧并停在那里。 这会在帧中的所有剩余动作执行完毕后发生。 如果除了指定帧以外,您还希望指定场景,那么请指定 scene 参数。

参数  frame:Object — 表示播放头转到的帧编号的数字,或者表示播放头转到的帧标签的字符串。 如果您指定了一个数字,则该数字是相对于您指定的场景的。 如果不指定场景,Flash Player 使用当前场景来确定转到其处并停止的全局帧编号。 如果指定了场景,播放头会转到指定场景中的帧编号并停止。  
  
scene:String (default = null) — 场景的名称。 此参数是可选的。  

引发 ArgumentError — 如果未在该影片剪辑中找到指定的 scene 或 frame。  

示例

下面的代码使用 gotoAndStop() 方法和 currentFrame 属性指示 mc1 影片剪辑的播放头从其当前位置前进 5 帧并停止:
mc1.gotoAndStop(mc1.currentFrame + 5);
——————————————————————————–

下面的代码使用 gotoAndStop() 指示 mc1 影片剪辑的播放头移到名为 “Scene 12″ 的场景中标记为 “finale” 的帧并停止播放头:
mc1.gotoAndStop(”finale”, “Scene 12″);nextFrame () 方法  

public function nextFrame():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

将播放头转到下一帧并停止。 这会在帧中的所有剩余动作执行完毕后发生。

另请参见

prevFrame()

示例

在下例中,由两个 SimpleButton 对象控制时间轴。 prev 按钮将播放头移动到前一帧,nextBtn 按钮将播放头移动到下一帧:

import flash.events.MouseEvent;

mc1.stop();
prevBtn.addEventListener(MouseEvent.CLICK, goBack);
nextBtn.addEventListener(MouseEvent.CLICK, goForward);

function goBack(event:MouseEvent):void {
    mc1.prevFrame();
}

function goForward(event:MouseEvent):void {
    mc1.nextFrame();
}nextScene () 方法  

public function nextScene():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

将播放头移动到 MovieClip 实例的下一场景。 这会在帧中的所有剩余动作执行完毕后发生。

示例

在下例中,由两个 SimpleButton 对象控制时间轴。 prevBtn 按钮将播放头移动到前一场景,nextBtn 按钮将播放头移动到下一场景:

import flash.events.MouseEvent;

mc1.stop();
prevBtn.addEventListener(MouseEvent.CLICK, goBack);
nextBtn.addEventListener(MouseEvent.CLICK, goForward);

function goBack(event:MouseEvent):void {
    mc1.prevScene();
}

function goForward(event:MouseEvent):void {
    mc1.nextScene();
}play () 方法  

public function play():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

在影片剪辑的时间轴中移动播放头。

另请参见

gotoAndPlay()

示例

下面的代码使用 stop() 方法来停止名为 mc1 的影片剪辑,并在用户单击名为 continueText 的文本字段时恢复播放:

import flash.text.TextField;
import flash.events.MouseEvent;

var continueText:TextField = new TextField();
continueText.text = “Play movie…”;
addChild(continueText);

mc1.stop();
continueText.addEventListener(MouseEvent.CLICK, resumeMovie);

function resumeMovie(event:MouseEvent):void {
    mc1.play();
}prevFrame () 方法  

public function prevFrame():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

将播放头转到前一帧并停止。 这会在帧中的所有剩余动作执行完毕后发生。

示例

在下例中,由两个 SimpleButton 对象控制时间轴。 prev 按钮将播放头移动到前一帧,nextBtn 按钮将播放头移动到下一帧:

import flash.events.MouseEvent;

mc1.stop();
prevBtn.addEventListener(MouseEvent.CLICK, goBack);
nextBtn.addEventListener(MouseEvent.CLICK, goForward);

function goBack(event:MouseEvent):void {
    mc1.prevFrame();
}

function goForward(event:MouseEvent):void {
    mc1.nextFrame();
}prevScene () 方法  

public function prevScene():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

将播放头移动到 MovieClip 实例的前一场景。 这会在帧中的所有剩余动作执行完毕后发生。

示例

在下例中,由两个 SimpleButton 对象控制时间轴。 prevBtn 按钮将播放头移动到前一场景,nextBtn 按钮将播放头移动到下一场景:

import flash.events.MouseEvent;

mc1.stop();
prevBtn.addEventListener(MouseEvent.CLICK, goBack);
nextBtn.addEventListener(MouseEvent.CLICK, goForward);

function goBack(event:MouseEvent):void {
    mc1.prevScene();
}

function goForward(event:MouseEvent):void {
    mc1.nextScene();
}stop () 方法  

public function stop():void

语言版本:  ActionScript 3.0
运行时版本:  AIR 1.0, Flash Player 9

停止影片剪辑中的播放头。

示例 如何使用示例

下例用 MovieClipExample 类来说明如何监视 MovieClip 的各种属性。 执行下列步骤可完成该任务:
构造函数定义一个文本字段,该文本字段用于显示 MovieClipExample 对象(扩展了 MovieClip)的属性值。
将 getPropertiesString() 方法的返回值用作 outputText 文本字段的文本。 getPropertiesString() 方法返回一个使用影片剪辑的以下属性值填充的字符串:currentFrame、currentLabel、currentScene、 framesLoaded、totalFrames 和 trackAsMenu。
构造函数中的两行代码调整 outputText 文本字段的 width 和 height 属性。
构造函数的最后一行将 outputText 文本字段添加到显示列表。

package {
    import flash.display.MovieClip;
    import flash.text.TextField;

    public class MovieClipExample extends MovieClip {

        public function MovieClipExample() {
            var outputText:TextField = new TextField();
            outputText.text = getPropertiesString();
            outputText.width = stage.stageWidth;
            outputText.height = outputText.textHeight;
            addChild(outputText);
        }

        private function getPropertiesString():String {
            var str:String = “”
                + “currentFrame: ” + currentFrame + “\n”
                + “currentLabel: ” + currentLabel + “\n”
                + “currentScene: ” + currentScene + “\n”
                + “framesLoaded: ” + framesLoaded + “\n”
                + “totalFrames: ” + totalFrames + “\n”
                + “trackAsMenu: ” + trackAsMenu + “\n”;
            return str;
        }
    }
}

 
 
 
 
 
 
 
 
 
 
as2.0 举例

复制代码

  1. m1_mc._yscale=200;
  2. m2_mc._xscale=200;
  3. m1_mc._rotation=270;
  4. m2_mc._rotation=-90;
  5. m2_mc._alpha=30;
  6. m2_mc.stop();
  7. m1_mc.stop();
  8. m1_mc.onRelease=function(){
  9.     m2_mc.play();
  10. }
  11. m1_btn.onRelease=function(){
  12.     m1_mc.play();
  13.     m2_mc.play();
  14. }
as3.0 举例

myflash.rar (69 K) 下载次数:1

m1_mc.scaleX=2;
m2_mc.scaleY=2;
m1_mc.rotation=90;
m2_mc.rotationY=90;
m2_mc.scaleZ=2;
/* m2_mc.alpha=0;
m1_mc.visible=false;
*/

m1_mc.stop();
m2_mc.stop();

m1_mc.addEventListener(MouseEvent.MOUSE_UP,dong);
function dong(evt:MouseEvent){
    m2_mc.play();
    m1_mc.play();
}
m1_btn.addEventListener(MouseEvent.MOUSE_DOWN,ting);
function ting(sj:MouseEvent){
m1_mc.stop();
m2_mc.stop();
}

复制代码

  1. m1_mc.addEventListener(MouseEvent.MOUSE_DOWN,xuanzhuan);
  2. function xuanzhuan(evt:MouseEvent){
  3.     m1_mc.scaleX*=-1;
  4. }
  5. var myGougou:Gougou=new Gougou();
  6. myGougou.x=300;
  7. myGougou.y=500;
  8. myGougou.scaleY=2;
  9. myGougou.scaleX=2;
  10. addChild(myGougou);
  11. var myGougou2:Gougou=new Gougou();
  12. myGougou2.x=250;
  13. myGougou2.y=550;
  14. myGougou2.scaleY=2;
  15. myGougou2.scaleX*=-2;
  16. addChild(myGougou2);
  17. for(var i=0;i<10;i++){
  18. var xGougou:Gougou=new Gougou();
  19. xGougou.x=20*i+50;
  20. xGougou.y=500;
  21. xGougou.z=50*i;
  22. xGougou.scaleX=.8;
  23. xGougou.scaleY=.8;
  24. addChild(xGougou);
  25. }
原创粉丝点击