本文介绍ActionScript2.0使用键盘移动元件的做法。
一、基本准备
1、首先,打开Flash,新建一个ActionScript2.0的文件。新建之后直接保存,如《【ActionScript】利用复制影片duplicateMovieClip与鼠标拖动跟随startDrag做出鼠标移动特效》(点击打开链接)一样,通过插入->新建元件(或者Ctril+F8)的方法,新建一个类型为:影片剪辑的实例。之后在元件1中,如下图,利用矩形工具,如下图,拖出一个矩形之后,利用选择工具,对其全选,之后设置其位置与大小,这里是大小为100x100px也就是宽高都为100,且X、Y为宽高的相反数的1/2的,也就是都为-50,使其居中。
2、之后切回到场景1,点开库面板,或者按F11,拖入这个刚刚新建好影片剪辑,如下图,在属性面版中,设置其实例名称为square,然后位置和大小,分别为X:275,Y:200,使其位于场景1的中央,宽高同影片的宽高。之后,利用文本工具,在场景1,拖出一个文本,设置其为动态文本,位置与大小分别为X:0,Y:0,使其居左上,同时宽为400,高为50,字体大小为40,消除锯齿为使用设备字体,以免编译的时候出现警告。在里面输入“X:275,Y:200”这几个大字。之后,在变量名称,设置其变量名为text。一会儿给脚本控制。
3、之后,如下图,不同于之前的几篇文章,这次是对那个矩形的影片剪辑,右击,选择动作,对其设置脚本。
二、脚本编程
ActionScript的任务主要是设置这个影片剪辑,在键盘按下时所实行的动作。如下:
onClipEvent(keyDown){//当按下键盘的时候触发这个函数 var intCode=Key.getCode();//获取键盘键位码 var intX=getProperty("_root.square",_x);//获取正方形的X、Y坐标 var intY=getProperty("_root.square",_y); _root.text="X:"+intX+",Y:"+intY;//将坐标赋予到动态文本 if(intCode==37 and intX>50){//如果是←且正方形没到左边界,则把长方形向左移动3个像素,之后以此类推 setProperty("_root.square",_x,intX-3); } if(intCode==38 and intY>100){ setProperty("_root.square",_y,intY-3); } if(intCode==39 and intX<500){ setProperty("_root.square",_x,intX+3); } if(intCode==40 and intY<350){ setProperty("_root.square",_y,intY+3); } }
利用getProperty可以获取影片剪辑的坐标,setProperty可以设置影片剪辑的坐标,_x与_y表示设置的属性。
上面脚本根据按下的键盘键位不同,而对影片剪辑做不同的动作。
由于这里存在场景与影片剪辑,必须用_root.开头,来指明这是场景内,而不是影片剪辑的东西。
虽然这个Flash影片的大小为550x400px,但在计算边界坐标要减去影片剪辑的一半大小。因为影片剪辑的坐标是按中心算的。
按Ctrl+Enter编译之后,得到如下的效果: