FlashAC代码常识汇编
目录
一、场景(_root) 1
二、按钮(button后缀:_btn) 2
1.格式: 2
2.常用事件: 2
三、影片剪辑(movieClip后缀:_mc) 2
1.代码格式: 2
2.常用事件: 3
3.影片剪辑的拖拽 3
⑴代码格式 3
⑵实例 3
①简单的拖拽 3
②碰撞命令 4
③碰撞命令与拖拽命令的结合使用 4
④复制并拖拽MC实例代码解释 6
4.随机载入影片剪辑的代码 6
5.删除(隐藏)主场景中的影片剪辑(或按钮)的代码 7
6.如何利用按钮把库里的影片剪辑调到主场景 7
四、对象路径(点语法) 9
绝对路径: 9
相对路径: 10
1.this(这个) 10
2._parent(父级) 10
五、控制语句流程的语法,如 10
六、函数(function) 10
1.函数的基本格式: 10
2.函数的复杂格式:(直接写入参数) 11
七、数组(arrays) 12
八、动态文本 13
1.如何为动态文本赋值 13
2.如何载入外部txt文本里的内容 14
实例 15
1.逐个显示一段文字 15
九、其它实例 16
1.放大镜(放大镜可随鼠标移动) 16
十、声音(Sounds) 16
1.stopAllSounds命令(停止所有音轨) 16
一、场景(_root)
几个常用的控制场景的方法,如
play();//让时间轴的指针播放
stop();//停止时间轴的指针在程序触发时候的那个帧
gotoAndPlay();//让指针跳转到某个帧,然后继续播放
gotoAndStop();//让指针跳转到某个帧,停止在那个帧
nextFrame();//往下走一帧(快进)
prevFrame();//往前走一帧(快退)
nextScene();//下一场景prevScene();//跳至上一个场景并停止stopAllSounds();//停止所有声音button后缀:_btn)
1.格式:
①写在按钮上时:on(事件){要执行的代码}
②写在帧上时:(按钮实例名).onrelease=function(){
getURL("http://http://3800hk.com/","_blank");//打开一个网页
};
2.常用事件:
press按下
release释放Dragover按着鼠标不放,光标滑入按钮即“拖过”Dragout按着鼠标不放,光标滑出按钮即“拖离”Keypress发生于用户按下特定的键盘按键时movieClip后缀:_mc)
1.代码格式:
①写在剪辑本身时:onClipEvent(事件){程序块}
如一个小球横向移动的AS:
onClipEvent(enterFrame){//enterFrame的意思是以小球帧频不断地触发此动作,小球有多少帧,它就会运动多少帧。
this._x+=5;
this._alpha=random(100);//this代表这个小球自身。_x表示mc的X轴坐标,//_alpha是透明度,random(100)是100以内的随机数。
}
②写在帧上时:实例名.事件名称=function(){//}
如上例的AS:
mc.onEnterFrame=function(){
this._x+=5;//你也可以把这句改为mc._x+=5._alpha=random(100);
};
不要忘了在事件名称前面加一个on一旦被实例化并出现在时间轴中时,即启动此动作。(当MC出现的时候执行。也就是除非卸载这个MC,否则load事件内的代码只执行一次。)
unload卸载。当MC卸载的时候执行。(在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。处理与Unload影片剪辑事件关联的动作之前,不向受影响的帧附加任何动作。)
enterFrame存在的每个帧(以影片帧频不断地触发此动作)。在MC存在的每个帧都要执行一次代码。如果你的场景有100个帧,有个MC从41帧开始出现到100帧才消失,那么这个MC上面的代码执行了60次。
mouseDown按下鼠标,在场景内任何地方都算。(和按钮不一样的地方)
mouseMove移动鼠标,只要移动鼠标就执行代码。(_xmouse和_ymouse属性用于确定当前鼠标位置)
mouseUp当释放鼠标时启动此动作。keyDown当按下某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息。keyUp当释放某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息。data当在loadVariables或loadMovie动作中接收数据时启动此动作。当与loadVariables动作一起指定时,data事件只发生一次,即加载最后一个变量时。当与loadMovie动作一起指定时,获取数据的每一部分时,data事件都重复发生。影片剪辑的拖拽
⑴代码格式
①拖拽格式:
StartDrag(要拖拽的影片剪辑,[是否锁定到鼠标位置中央,左,上,右,下])
或写为要拖拽的影片剪辑.StartDrag([是否锁定到鼠标位置中央,左,上,右,下])
在制作动画的过程中,上面两种书写方法可任选一种。其中[]内的为可选参数,也就是可以写,也可以不写。至于左,上,右,下四个参数是用来控制被拖对象的移动范围。
②停止拖拽格式:
被拖拽的影片剪辑实例名.stopDrag()
⑵实例
①简单的拖拽
操作步骤:
a.新建一个flash文档,并在舞台上绘制一个圆形。选中圆形并按F8,将此圆形转换为影片剪辑,起名为:圆。确定后将会在舞台上创建一个圆的实例。
b.选中此实例,并按F9打开动作面板。输入如下脚本:
on(press){
this.startDrag(true);//当鼠标按下(press)之后,这个实例(因为我们把脚本写在实例本身了,所以这里用this代替影片剪辑实例的名字)可以被拖拽,使用命令如上面的命令解释。对于参数的选择方面,这里只填写了锁定到鼠标位置中央,如果想选不锁定到鼠标位置中央,可以把true改为false。有兴趣的朋友可以更改为false看看。
}
on(release){
this.stopDrag();//同样道理,当鼠标释放(release)之后,将停止拖拽动作。
}
c.好了,现在让我们按Ctrl+回车来测试一下吧,你将会看到舞台上的圆被你的鼠标拖动的效果。
d.OK,通过这个例子我们可以简单的应用拖拽动作了。现在需要把这个例子继续完成,还记得上面命令讲解中的左,上,右,下四个控制拖动范围的参数吗?现在来制作具有约束拖动范围的效果。
e.现在在舞台上绘制一个200100大小的矩形,注意只要边框不要填充。
f.如果我们希望在拖动的时候这个圆只能在矩形内拖动的话,就要先设置这个矩形的坐标,并记下矩形四个顶点的坐标(这点很重要!)。OK,比如,现在此例子中的矩形的四个顶点分别如上图所示。那我们要取的四个参数就应该是:左=50,上=100,右=250,下=200现在打开动作面板,修改刚才的脚本如下:
on(press){
this.startDrag(true,50,100,250,200);//这里我们就使用刚才确定好的4个参数。4个点的参数就对拖动对象实现了一个矩形区域的移动约束!
}
on(release){
this.stopDrag();
}
g.好了,按Ctrl+回车去测试吧!
好了,关于拖拽的讲解先到这里,下面我们来学习如何结合着拖拽动作来检测对象之间的碰撞!
②碰撞命令
命令格式:
a.目标影片剪辑的实例.hihkest(被拖拽的实例),这个是比较简单的检测碰撞命令。
b.目标影片剪辑的实例.hihkest(被拖拽实例的X轴坐标,被拖拽实例的Y轴坐标,对象的矩形区域范围还是对象本身范围),这个是比较复杂点的检测碰撞命令。
命令解释:以上两个命令都是用来检测碰撞的,可以根据需要选择不同的命令。重点解释一下对象的矩形区域范围和对象本身范围(上面的命令中,false表示对象的矩形区域范围,true表示对象本身的范围)
③碰撞命令与拖拽命令的结合使用
下面通过简单的例子来学习碰撞命令(我们先来学习如何检测是否碰到对象的矩形区域范围)
a.新建一个flash文档,在舞台上绘制一个圆形。选中圆形并按F8将它转换为影片剪辑,起名:圆。这样就在舞台上创建了一个圆的实例。
b.选中此实例,为它起一个名字,此例起名为:yuan
c.选择文字工具,并选择文字类型为“动态文本”,在圆的实例下面拖绘出一个动态文本框。并起一个变量名为:hk
d.选中时间轴的第一桢,按F9打开动作面板,输入以下脚本:
_root.onEnterFrame=function(){
//这个是在时间轴上的AS编写规则,解释为舞台上每桢都执行下面的脚本
(onEnterFrame)。
if(_root.yuan.hitTest(_root._xmouse,_root._ymouse,false)){
//根据上面命令的讲解,这个语句就是检测碰撞了。如果鼠标碰到舞台上
yuan这个实例的矩形区域范围的话,就执行下面的脚本。
hk="接触矩形区域范围";
//动态文本框就显示出“接触矩形区域范围”
}else{
hk="没有接触到矩形区域范围";
//如果鼠标没有碰到舞台上yuan这个实例的矩形区域范围的话,就显示没有接触到矩形区域范围。
}
};
现在可以按Ctrl+回车去测试我们的成果
拖拽碰撞检测
现在再来一个例子讲解拖拽碰撞检测,想偷懒的话可以通过修改上面例子的代码来学习。
a.现在稍微修改一下上面的例子,以便让我们学习拖拽碰撞检测,在上面例子的舞台上绘制一个矩形,并把这个矩形转换成电影剪辑,起名为:矩形。这样就在舞台上又创建了一个矩形的实例,现在为这个矩形实例起一个名为:juxing。
b.选中这个矩形实例,打开动作面板,输入可以拖拽这个实例的脚本。如下:
on(press){
this.startDrag(true);
}
on(release){
this.stopDrag();
}
这个脚本就是为了能拖动这个矩形实例。具体解释请回顾第一个拖动对象例子的脚本说明。
c.现在来修改脚本,选中时间轴的第一桢,按F9打开动作面板,你将会看到上个例子的碰撞检测脚本,把它修改为如下脚本:
_root.onEnterFrame=function(){
if(_root.yuan.hitTest(_root.juxing)){
hk="碰到了";
}else{
hk="没有碰到";
}
}
这个脚本和上次的碰撞检测脚本类似,只不过不需要再书写X轴和Y轴,也不用写是否碰到矩形区域范围。简单吧,现在又到了测试阶段了,去观看你的成果。
④复制并拖拽MC实例代码解释
在主场景的第一帧新建一个MC,实例名为star。
新建一个图层,在第一帧输入如下代码:
vari:Number=0;//声明一个Number类型为0的变量,他的名叫istar.onPress=function(){/当名为star影片按钮或者影片剪辑按下的时候,触发一个函数function()
duplicateMovieClip("star","star"+i,i);//复制start,把复制命名为"star"+i,深度是ieval("star"+i).startDrag();/start+i这个,拖拽eval()就是把字符串当成表达式来执行例如:
vars="3+4";
alert(s);
vara=eval(s)
alert(a);eval("star"+i).onMouseUp=function(){//当在start+i上松开鼠标的时候执行一个函数this.stopDrag();//它停止拖拽
}
i++;//最后i++,再累加一次
};怎么点击一个按钮,来随机播放暂停一个影片剪辑里的某一帧on(release){
_root.mc.gotoAndStop(int(random(num-1)+1))
}//num是影片剪辑的总帧数。-1之后+1是防止出现0的情况我在舞台上放置若干个影片剪辑,现在想用随机数方法让其中某个剪辑进行播放,其他保持停止代码
sj=Number(random(9)+1);将随机产生的0-9之间的数值加1后赋给sj变量
_root["ds"+sj].play();//根据sj变量的值播放场景中相应的ds影片剪辑件
这段代码是加在一个MC影片剪辑里。如图。帧有多长代表多长时间随机一次。
然后把这个剪辑放到主场景,不用管它。主场景再放入制作好的你要随机播放的9个影片剪辑,一次给它们命名ds1、ds2……ds9。注意,这9个动画都是第一帧加了stop();停止播放代码的。如果随机函数随机到哪个剪辑,哪个剪辑才播放
③问:我想做一个仿WIN7的Flash文件,桌面上有图标,我想点击一下某个图标,能在桌面上出现一个窗口(载入相应的影片剪辑),我用的CS4,谁能告诉我代码怎么写?
你的问题不是一两句话就能将清除的。不像as2,as3不能在Button和Clip上添加代码的,而只能在帧上添加或外部链接。as3按钮代码的添加方法:先上定义一个按钮,取名为btn,然后给btn增加一个侦听器,代码如下。
btn.addEventListener(MouseEvent.CLICK,onBtnClickHd);
functiononBtnClickHd(evt:MouseEvent):void{
trace("你单击了按钮");
//下面的方法是在舞台上加载自己定义的类实例
//你可以把你要加载的那个影片剪辑定义为YouClass类,然后加载进来。
varmc:YouClass=newYouClass();
stage.addChild(mc);
mc.x=100;
mc.y=100;
}如何随机加载图片到mc这个没有内容的影片剪辑上?代码filename=["1.jpg","2.jpg","3.jpg"];
path="images/";
i=filename.length;
k=Math.floor(Math.random()i);loadMovie(path+filename[k],"loadpic");
5.删除(隐藏)主场景中的影片剪辑(或按钮)的代码
可以使用attachMovie()从库里绑定一个mc,用removeMovieClip()移除,也可以用_visible属性控制mc可见性。
使用_visible的话,将mc放到主场景,实例名mc,主时间轴帧上:
mc._visible=false;//让mc不可见。
主场景按钮脚本:
on(release){
mc._visible=true//让mc可见。
}
mc上按钮:
on(release){
mc._visible=false//让mc不可见。
}
把库里的影片剪辑第一帧设置为空白帧,加上代码:stop()从第二帧开始动画,到最后一帧加代码:如果你想要它只运动一,就加代码:stop();如果你想让他不停的动下去就加代码:gotoAndPlay(2);//这里的代码都是加在关键帧上的。
然后,把影片剪辑放到舞台上,这时你看到的只是一个圆点,取实例名称为:aa
选择按钮,打开动作面板输入代码:
on(release){
_root.aa.gotoAndPlay(2);
}当你点击按钮后,影片剪辑aa从第2帧开始播放。首先给库里的影片剪辑一个链接名比如my_mc要点击的按钮取个实例名:比如my_btn场景选中图层的帧,按F9键,打开动作面板输入代码:
as2的写法:
var_mc:my_mc=newmy_mc();用var声明一个实例名:my给影片剪辑。
_root.loadMove(_mc);
my_btn.onRelese=function(){
_mc.play();
}
as3的写法:
var_mc:my_mc=newmy_mc();用var声明一个实例名:给影片剪辑。
_addChild(_mc);用addChild()命令将实例加入显示列表。
my_btn.addEventListener(MouseEvent.CLICKK,myenventHandle)//注册鼠标单击事件侦听器
functionmyeventHandle(){//定义侦听器函数
_mc.play;
}
提示:当没有明确指定显示容器时,影片剪辑实例是被添加到时间轴的当前帧
③在一个大场景中,点击某按钮A会一个元件在该场景中(原场景还在)然后该元件上有一个按钮B,按下能单独关闭这个元件
首先给库里的影片剪辑一个链接/确定)。按钮
on(release){
attachMovie("abc","abc",1);//意思可能是:复制“abc”,得到一个新的“abc”并粘贴它,图层深度为1。
}
在要删除的按钮
on(release){
this.removeMovieClip();
}//删除这个影片剪辑。“this.”可能要写成链接的标识符(如abc.)。
方法二:(已试过,很好!)
如果导入后有具体的位置(即座标),可以按以下方法:
第一步:在舞台上创建一个影片剪辑元件。并按前述取标识符名(如“abc”)。
第二步:插入“图层2”在此图层的第1帧输入代码:
vari=0
在场景中建立两个按钮,(复制按钮和删除按钮)。分别在两个按钮上输入代码:
在要导入的按钮
on(press){
i++;
if(i<=12){
attachMovie("abc","abc"+i,i);//同方法一
}else{
i=12;
}
_root["abc"+i]._x=275+120Math.sin(i1/6Math.PI);
_root["abc"+i]._y=180+120Math.cos(i1/6Math.PI);
}
在要关闭的按钮on(press){
if(i>=1){
removeMovieClip("abc"+i);//删除“abc”
}else{
i=1;
}
i--;
}
在方法二中,之所以要设置if条件,我想可能是要限制导入的次数(一次)。其实也可同方法一,不必设置if条件,在导入按钮上设置隐藏代码,用一次后即隐藏这个按钮。
四、对象路径(点语法)
绝对路径:
假设主场景是房间,主场景里的MC(实例名:myMC)是桌子,MC里面的按钮(实例名:myBtn)是书,那么
_root房子
_root.myMc房子.桌子
_root.myMc.myBtn房子.桌子.书
AC代码的表示方法是:
_root.stop();//主场景停止播放。
_root.myMc.stop();主场景里的MC停止播放。
(说明:这里为什么要在后面加()呢?因为stop是方法不是对象,为了让Flash知道这是个方法,我们必须加上(),要不然它会以为“stop”是个对象。)
相对路径:
1.this(这个)
如进入Mc的编辑状态,在Mc的Timeline的第一帧写上this.stop();现在不管你这个MC放在哪里,命名是什么,我都不管,反正肯定会停下来。为什么,因为AS正“坐在MC上”。
2._parent(父级)
还如上面假设,把root.myMc.stop();改为相对路径,_parent.stop();那它指的就是主场景停止播放,而不是MC停止播放。
五、流程控制与循环语句
1.流程控制语句
⑴基本格式
if(条件){
//条件满足执行这里的代码
}else{
//条件不满足执行这里的代码
}
如:一个小球横向移动的AS:
onClipEvent(enterFrame){//enterFrame的意思是以小球帧频不断地触发此动作,小球有几帧,它就运动几帧,直到满足条件。
if(this._x<400){//如果这个小球的X轴坐标小于400,就执行后面的程序。
this._x+=5;//让这个小球的坐标向右移动5个象素
}else{
this._x=0;//如条件不成立,就让它的X坐标为0
}
}
2.循环控制语句
⑴for循环
格式:
for(初始变量;条件语句;迭加命令语句){
//用户自己编写的脚本。
}
for语句的括号内有三个项目,必须要用分号间隔开!
初始变量:循环语句也是用条件是否成立来控制的,通常我们用一个变量来控制程序执行的次数。那么,这个初始变量就要先定义一个值。要注意的是,初始变量这个项目只执行一次!
条件语句:这个项目就是我们的判断语句了。
迭加命令语句:接上面的条件语句,如果条件语句成立,会执行{}内的程序,那么执行完程序之后,就要回来执行迭加命令语句了。通常它就用来增加或减少刚开始时的初始变量的值。
实例:
1.新建一个flash文档,在舞台上绘制一个圆,选中圆并按F8转换成影片剪辑,起
名为:圆这样就在舞台上创建一个圆的实例。
2.为这个实例起名为:yuan
3.添加一个新的层,并选中新层的第一帧,按F9打开动作面板,输入如下脚本:
for(i=1;i<5;i++){
duplicateMovieClip("yuan","yuan"+i,i);//复yuan,新名为yuan1,图层深度为i
_root["yuan"+i]._x=random(400);//以下是设置复制品的属性
_root["yuan"+i]._y=random(300);
_root["yuan"+i]._alpha=random(100);
}
4.选中时间轴的第6帧,按F6插入一关键帧,打开动作面板输入以下脚本:
gotoAndPlay(1);让flash播放到第6帧的时候返回第1帧再来执行for循环语句。
5.测试效果吧,你会看到舞台上会循环4次复制出4个圆。
⑵while循环
格式:
while(条件){
//当条件满足时一直执行这里的代码
}
六、函数(function)
1.函数的基本格式:
functionfuncName(){
statements
}
function是函数,funcName是函数的名字。
()小括号里面是参数。
{}大括号里面的就是函数所要完成功能的一句句代码。
当我们建立函数之后,函数并不运行,只在你用函数的名字调用它出来,才正式开始运行。
例如我们有这样一个函数
functionsayHi(){
trace("Hi!");
}
当我们在FLASH某帧需要sayHi的时候,输入AS:
sayHi();
是不是和最常见的stop();还有play();一样啊?因为它们都是函数嘛。
来个有意义的函数吧。先在场景里放好一个实例名叫ball的影片剪辑。
在第一帧输入这样一个函数:
functionmoveBall(){
ball._x+=10;//_x代表ball的横坐标,ball._x+=10的意思是ball._x=ball._x+10,这样省略的写法还有-==/=等等
ball._y+=10;
}
再做一个按钮,按钮的AS:
on(release){
moveBall();
}
好的,运行,从AS你可以看到,每点一下按钮,执行一次函数,而函数让小球下斜下移动。(FLASH的坐标轴,原点在左上角)
2.函数的复杂格式:(直接写入参数)
functionmoveClip(theClip,xDist,yDist){
theClip._x+=xDist;
theClip._y+=yDist;
}
theClip是实例名,xDist是水平移动的距离(横坐标),yDist是垂直移动的距离(纵坐标)。
当我们要实现原来函数功能的时候,现在调用新函数就变成
moveClip(ball,10,10);
定义函数的时候functionmoveClip(theClip,xDist,yDist){
这里的theClip等参数(parameters)只是定义,本质上说是不存在的,因为没有内容嘛
当我们用moveClip(ball,10,10);调用的时候,ball就输入到theClip中去了,这里的ball称为arguments。
arguments可以是一个变量,也可以是一个表达式(例如"a"+"b",先得出结果再传输给函数)只要用逗号隔开各个参数就行
函数如何结束呢
正常来说,函数运行完{}里所有语句结束,我们也可以用一句AS:return;让它中途结束,例如:
functionsay(msg){
return;
trace(msg);
}
这个函数被调用的时候将什么都不做就结束
return还有更重要的用途:
functionsqr{//Squaresanumber平方
returnxx;
}
a=sqr(2);//a将会被赋予2的平方4
return更重要的用途就是返回数据
在AS里面,有个内建的函数Math.sqrt(就是说你敲入的时候会变色),其功能和我们刚才做的sqr函数是一样的,现在你该知道内建函数也没什么神秘的,我们一样可以做出相同功能的来。
七、数组(arrays)
数组就是一系列的数据
例如这样两个变量储存的数据:
fruit1="oranges";
fruit2="apples";
它们是互相独立的,使用起来很不方便,我们需要的是数组,以下是数组的定义方法,用“”框住,用“,”分隔开每个元素:
fruitList=["oranges","apples"];
现在两个数据是放到同一个数组里面了,我们开始详细解说数组
数组里面每一个数据称为元素(element)。
而每一个元素都有个独立数字代表所处的位置,数字叫索引(index),注意!第一个数据的索引是0,第二个才是1。
要按索引来提出数据,我们要用一个运算符,例如使用fruitList第一个元素赋值给a:
a=fruitList;
又例如将a的值赋给fruitList第一个元素:
fruitList=a;
当然里面也可以放表达式、变量:
varindex=3;
//SetnumApplesto2
vara=fruitList[index];
下面是个使用表达式的例子:
//CreateamyFramesarray.Notethelegalformatting.建立一个记录LABEL的数组
varmyFrames=["storyEnding1",
"storyEnding2",
"storyEnding3",
"storyEnding4"];
//SetrandomFrametoarandomlypickedelementofmyFrames
//bycalculatingarandomnumberbetween0and3
//随机从数组中提取一个LABEL
varrandomFrame=myFrames[Math.floor(Math.random()4)];
//Nowgototherandomframe
//然后跳到该LABEL播放
gotoAndStop(randomFrame);
而数组包含数据的个数称为长度(length),例如fruitList.length就等于2。
对数组最常用的处理就是从数组中选出有用的数据了。
来看一个运用循环的例子:
//Createanarray建立数组,里面放了一些歌的类型
varsoundtracks=["electronic",
"hiphop",
"pop",
"alternative",
"classical"];
//Checkeachelementtoseeifitcontains"hiphop"
//一个循环,检查每一个元素是否等于"hiphop"这个类型
//另外,请留意此处编者对FOR的写法,J=0之前有一个VAR,这好象可有可无,其实是一个好习惯!
for(varj=0;j trace("nowexaminingelement:"+j);
if(soundtracks[j]=="hiphop"){
trace("thelocationof''hiphop''isindex:"+j);
break;//跳出循环,找到了就不用再找了
}
}
关于数组的方法(method)
方法就是从属于某一对象(object)的函数,通常都是对该对象进行处理的函数
好象太抽象了?我们还没讲到什么是对象,其实数组是对象的一种,我们就暂且将数组的方法理解为一个专门处理数组内数据的结构和内容的工具吧
例如一个叫push()的方法就是一个工具,用于为数组添加一个元素,并且加在该数组的最后
使用起来并不复杂,看例子就知:
//Createanarraywith2elements
varmenuItems=["home","quit"];
//加一个元素
//现在数组的结构变成["home","quit","products"]
menuItems.push("products");
//这次是加两个
//menuItemsbecomes["home","quit","products","services","contact"]
menuItems.push("services","contact");
跟push()相反从最后弹出一个元素的方法是pop()
而跟push()类似,但是是将一个元素加到数组的开头的方法是unshift(),与之相反的是shift()
方法sort和reverse,用于重新排列数组的元素
方法splice用于从数组中间删除某元素
方法slice和concat可以在某些数组的基础上生成另一个新的数组
方法toString和join可以将整个数组变成单一个字符串
以上方法都可以从AS字典里面查到
八、动态文本
①使用动态文本的实例名字来赋值
格式:实例名.text=”需要赋值的内容”(必须使用“实例名.text”)
②使用变量来赋值
格式:变量名=“赋值的内容”
以上两种赋值方法如果内容过多需要换行的时候,需要使用行用回车符(“\r”即ASCII13)分隔!)
2.如何载入外部txt文本里的内容
当内容过多的时候,要从外部获取文本资料内容!而外部的资料内容就放在一个普通的txt(记事本)文件中。具体操作步骤如下:
①创建一个动态文本实例,并为这个动态文本实例起一个变量名hk
②选中时间轴的第一桢,打开动作面板,输入以下脚本:
loadVariablesNum("heiying.txt",0);//载入外部名字叫heiying.txt的文本文件,加载级别为0
③现在来准备外部的heiying.txt文本文件了。注意:要把这个文本文件和你刚才做的flash文件放在一个文件夹里!这个txt文件里的资料应该按照如下格式编写:flash中动态文本变量的名字=这里就是所需要的资料内容。对应上面的格式,外部heiying.txt中的内容为:
hk=欢迎大家来到爱国者安全网学习!
最后一点,需要将这个文本文件保存为UTF-8格式(点文件.....另存为.....编码:UTF-8老虎注)。
④完成以上步骤之后,就可以进行测试了。
下面介绍另外一种载入外部文本资料的方法,并介绍当文本内容过多时候,如何使用滚动条组件:
(1)创建一个动态文本实例,并并为这个动态文本实例起一个实例名字anquan(注:是实例名而不是变量名)起一个变量名为hk
(2)打开flash的组件面板(快捷键ctrl+F7),找到UIScrollBar(滚动条)组件。按着它不动,然后拖放此组件至刚才的动态文本实例的右部边缘,如果成
功的话,组件会和文本框结合在一起!
(3)选中舞台第一桢,编写如下脚本:
tt=newLoadVars();
//创建一个LoadVars对象的实例,这里的实例名字叫tt
tt.load("heiying.txt");
//创建的tt实例需要载入的对象是heiying.txt文本文件。
tt.onLoad=function(s){
//开始载入外部文件,具体格式请按照此例格式。参数s//是指示load操作是否成功完成。如果完成,那么S的值就为true(真),反之为false(假)
if(s){
anquan.text=tt.hk;
}
//如果载入成功,则anquan文本框中的内容就等于tt.实例中的heiying的内容!(hk是我们外部文本文件中的变量。)
};
(4)至于外部的heiying.txt还可以使用刚才所创建的文本文件,为了测试滚动条的效果。
实例
1.逐个显示一段文字有时候我们需要在一个窗口中,逐个显示一段文字,具有更加强烈的效果;
分析一下:文字应该放在一个动态文本框中,并且每次增加一个字进去;
用到的代码:substr是取出几个字符的函数,length是字符串的长度属性;
创建动态文本框
启动Flash,新建一个空白文档,在第2帧插入关键帧
②单击第1帧,打开“动作”面板,输入代码;
③单击第2帧,在动作面板入下列代码:
{
stop();//完了就停止
}else{
Count++;//每运行一次加1
}
④在第4帧插入帧,把第2帧加长一些,动画至少要两帧;再在第5帧插入空白关键帧,准备在这儿输入代码
gotoAndPlay(2);//回去接着显示;
测试一下影片,看看效果
注:①如果第五帧的代码为stop();并在场景中放置一个按钮,在按钮上写:
on(press){
gotoAndPlay(2);
}
结果将会按一次按钮出现一个字符。
②如果把txtwin=strLove.substr(0,count);改为txtwin=strLove.substr(1,count);则从第二个字开始,每次显示count个字符。
③如果把txtwin=strLove.substr(0,count);改为txtwin=strLove.substr(count);则先显示全部字符串,每按一次按钮减少前一个字符。
④试一试,调试varcount=0;或strLove.substr(0,count);或Count++;将会得到意想不到的结果。
九、其它实例
1.放大镜(放大镜可随鼠标移动)
①建立新文档
②导入作为背景的图到库中(图不能太小),把它拖到场景中,将高、宽分别修改为原有的一半,然后将文件改为同样大小。将这层命名为背景并锁定这层
③新建一层命名为“大图”,将库中的图片再拖入一次,按F8将它转换为影片剪辑并命名“放大的图”
④选中影片剪辑“放大的图”给它取一个实例名“dt_mc”,然后将这层锁定,它在舞台上的位置可随意放
⑤新建一层命名为“放大镜”用椭圆工具画一个正圆形,选中将宽高改为100100,然后转为影片剪辑,实例取名“fdj_mc”
⑥新建一层“镜框”,画一个只有边框没有填充的圈,在属性中将宽高改成100100,边框宽度改成8.然后将它转成影片剪辑,实例取名“jk_mc”
⑦新建一层“语句”,选中第一帧,关在脚本栏中输入以下代码:
fdj_mc._x=jk_mc._x=_xmouse-50;
fdj_mc._y=jk_mc._y=_ymouse-50;
dt_mc._x=-_xmouse;
dt_mc._y=-_ymouse;
⑧将所有层延长到2帧
⑨最后在“放大镜”层上点右键选“遮罩层”
十、声音(Sounds)
1.stopAllSounds命令(停止所有音轨)
使用格式:stopAllSounds()
该命令没有参数,用来停止当前FlashPlayer中播放的所有声音。
|
|