ActionScript之控制时间轴 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    在创建交互动画时,你可以使用Flash提供的动作或方法来控制时间轴,

ActionScript之控制时间轴

。可以使用某些动作(Actions)和MovieClip对象的方法(Methods)指向一个电影剪辑或载入某层级的动画,或对它们执行一些任务。例如,setProperty动作可以设置时间轴的某种属性(如_width)为某个值(如100),某些MovieClip对象的方法可以复制指向时间轴的所有动作的功能,还有一些完成其它任务的方法,如hitTest(碰撞测试)和swapDepths(交换深度)等等。不管你使用动作还是方法,当动作或方法被调用时,目标时间轴必须已经载入Flash播放器中。

   

    关于方法与动作

    使用方法来控制时间轴,采用的是点语法。你可以通过指定指向实例名的目标路径,接着是一个点,然后指定方法名和参数的方式来调用一种方法。 如下面的语句:

myMovieClip.play();parentClip.childClip.gotoAndPlay(3);

    在第一个语句中,play方法使实例myMovieClip播放。在第二个语句中,gotoAndPlay方法把childClip(实例parentClip的一个子剪辑) 电影剪辑的播放头移到第3帧播放。

    使用动作控制时间轴,要用一个Target(目标)参数来指定目标路径。例如,在下面的脚本中,startDrag动作指向 customCursor 实例,使它可以拖动。

on(press){ startDrag("customCursor");}

    如果改用方法,则可以写成:

customCursor.startDrag();

    使用MovieClip对象的方法书写的语句更为简短,因为它们不需要tellTarget动作。tellTarget动作与ECMA-262规范不兼容,所以不鼓励使用。

    例如,使用MovieClip对象的方法指令电影剪辑myMovieClip开始播放,你可以使用下面的代码:

myMovieClip.play();

    如果使用tellTarget动作,就要这样书写:

tellTarget ("myMovieClip") { play();}

    两种方法的效果相同,但前者更为简洁,

电脑资料

ActionScript之控制时间轴》(https://www.unjs.com)。

    这里所列的动作可以指向电影剪辑:loadMovie、unloadMovie、setProperty、 startDrag、 duplicateMovieClip和removeMovieClip。要使用这些动作,你必须在动作的Target(目标)参数中输入目标路径,指明动作的受体。在这些动作中,有些可以指向电影剪辑或层级,有些则只能指向电影剪辑。

    下面的MovieClip对象的方法可以控制电影剪辑或载入某层级的动画,且没有等价的动作:attachMovie、getBounds、 getBytesLoaded、getBytesTotal、globalToLocal、localToGlobal、 hitTest和swapDepths。

    当一种动作和一种方法均能提供同样的功能时,你可以选择其中一种来控制电影剪辑,这取决于你的喜好和使用ActionScript编写脚本的熟悉程度。

   

    使用多种方法或动作指向时间轴

    使用多种方法或动作指向时间轴

    你可以使用with 动作对目标电影剪辑编址一次,然后对该剪辑执行一系列动作。 with动作对所有ActionScript对象(如Array、Color和Sound)有效,而不是仅仅对电影剪辑有效。tellTarget动作类似于 with动作。 然而,最好不要使用tellTarget动作,因为它并非对所有的ActionScript对象有效,且与ECMA-262不兼容。

    with动作使用对象作为参数。指定的对象被添加到当前目标路径的末尾。嵌套在 with动作内的所有动作在新的目标路径或范围内执行。例如,在下列主时间轴的脚本中, with动作传递对象donut.hole,以改变hole的属性:

with (donut.hole){ _alpha = 20; _xscale = 150; _yscale = 150;}

    就好像从hole实例的时间轴中调用with动作内的语句一样。

    在下面的例子中,使用with动作和MovieClip对象的方法来发布几个指令:

with (myMovieClip) { _x -= 10; _y += 10; gotoAndPlay(3);}

   

最新文章