第十一章交互式动画【教学目标】•理解交互的概念•了解按钮的结构•掌握动画的控制•掌握对象的拖放和复制11.1功能讲解11.1.1交互的概念所谓“交互”,就是由用户利用各种方式,如按钮、菜单、按键、文字输入等,来控制和影响动画的播放。交互的目的就是使计算机与用户进行对话(操作),其中每一方都能对另一方的指示做出反应,使计算机程序(动画也是一种程序)在用户可理解、可控制的情况下顺利运行。大家常玩的电脑游戏就是典型的交互程序。11.1.2鼠标的事件事件名称说明CLICK鼠标左键在对象上单击的事件。DOUBLE_CLICK鼠标左键在对象上双击的事件。MOUSE_DOWN鼠标左键在对象上被按下的事件。MOUSE_UP鼠标左键在对象上被松开的事件。MOUSE_MOVE鼠标移动的事件。MOUSE_OUT鼠标离开对象的事件。MOUSE_OVER鼠标移动到对象上的事件。作品示例:鼠标事件11.1.3按钮的结构11.1.3按钮的结构11.2范例解析11.2.1控制主时间轴动画所谓主时间轴动画,是指直接在动画的主时间轴建立的补间动画或逐帧动画,利用stop()语句和play()语句可以直接控制这种动画。作品:飞翔的小鸟作品:控制元件播放11.2.2控制影片剪辑11.2.3对象的拖放1、startDrag函数startDrag(lockCenter:Boolean=false,bounds:Rectangle=null)功能:允许用户拖动指定的对象。该对象将一直保持可拖动,直到通过调用stopDrag()方法来明确停止,或直到将另一个对象变为可拖动为止。在同一时间只有一个对象是可拖动的。2、stopDrag函数stopDrag()功能:结束startDrag()方法。作品:失落的武士11.4综合实例-五彩飞花一、动态创建元件实例在Flash中向屏幕中添加内容的一个方法是将资源从库中拖放到舞台上,这种方法最简便直观,但对于一些需要在动画播放期间动态添加元件实例的情况,这种方法就不适用了。这就需要考虑用ActionScript来创建实例。默认情况下,Flash文档库中的影片剪辑元件实例不能以动态方式创建,也就是说不能使用ActionScript创建。因此,为了使元件可以在ActionScript中使用,必须指定为ActionScript导出该元件。后面将结合实例说明导出元件定义的方法。这种动态创建元件实例的方法具有多个优点:代码易于重用、编译时速度加快,可以在ActionScript中进行更复杂的修改。11.4综合实例-五彩飞花二、创建对象实例要创建一个对象实例,应将new运算符与类名一起使用,如:varraceCar:MovieClip=newMovieClip();varbirthday:Date=newDate(2006,7,9);通常,将使用new运算符创建对象称为“调用类的构造函数”。“构造函数”是一种特殊方法,在创建类实例的过程中将调用该方法。当用此方法创建实例时,需要在类名后加上小括号,有时还可以指定参数值。对于可使用文本表达式创建实例的数据类型,也可以使用new运算符来创建对象实例。例如,下面的两行代码执行的是相同的操作:varsomeNumber:Number=6.33;varsomeNumber:Number=newNumber(6.33);11.4综合实例-五彩飞花三、addChild()方法在ActionScript3.0中,当以编程方式创建影片剪辑(或任何其它显示对象)实例时,只有通过对显示对象容器调用addChild()或addChildAt()方法将该实例添加到显示列表中后,才能在屏幕上看到该实例。允许用户创建影片剪辑、设置其属性,甚至可在向屏幕呈现该影片剪辑之前调用方法。publicfunctionaddChild(child:DisplayObject):DisplayObject作品:五彩飞花11.5小结本章详细说明了Flash交互式动画的概念和基本特点,并结合例题说明了交互式动画的实现方法,如动态按钮、动画控制、对象的拖放和对象复制等,每个练习都是有目的地说明了某种类型的ActionScript函数、事件的使用。虽然练习都比较简单,但是通过这些练习,读者能够更深刻地理解交互、理解类的概念。