Flash动作命令大全


 

Flash常用的动作命令

 

一.Flash中的常用命令:

1、在当前帧停止播放

on(release){

  stop();

}

2、从当前帧开始播放

on(release){

  play();

}

3、跳到第 10 帧,并且从第 10 帧开始播放

on(release){

  gotoAndPlay(10);

}

4、跳到第 20 帧,并且停止在该帧

on(release){

  gotoAndStop(20);

}

5、跳到下一个场景,并且继续播放

on(release){

  nextScene();

  play();

}

6、跳到上一个场景,并且继续播放

on(release){

  prevScene();

  paly();

}

7、条到指定的某个场景,并且开始播放

on(release){

  gotoAndPlay('场景名',1);

}

8、播放器窗口全屏显示

on(release){

  fscommand('fullscreen', true);

}

9、取消播放器窗口的全屏

on(release){

  fscommand('fullscreen', false);

}

10、播放的画面,随播放器窗口大小的,改变而改变

on(release){

  fscommand('allowscale', true);

}

11、播放的画面,不论播放器窗口有多大,都保持原尺寸不变

on(release){

  fscommand('allowscale', false);

}

12、打开一个网页,如果该“网页”和“flash动画”在同一个文件夹里:

on(release){

  getURL('http://ftg.5d6d.com');

}

13、打开一个网页,如果该“网页”是在网络上的其他站点里:

on(release){

  getURL(http://ftg.5d6d.com);

}

14.跳转帧(按纽动作,释放跳转)

on (release) {

gotoAndPlay(1);

}

15.播放:

on(release){play();}

16.停止:

on(release){stop();}

17.跳到第N帧开始播放:

on(release){gotoAndplay(N);}

18.跳到第N帧停止:

on(release){gotoAndstop(N);}

 

二.Flash中关于声音的常用命令:

 

1.new Sound()//创建一个新的声音对象;

2.mysound.attachSound()//加载库里的声音

3.mysound.start()//播放声音;

4.mysound.getVolume()//读取声音的音量

5.mysound.setVolume()//设置音量

6.mysound.getPan()//读取声音的平衡值

7.mysound.setPan()//设置声音的平衡值

8.mysound.position//声音播放的当前位置

9.mysound.duration//声音的总长度;

 

 

FLASH动作脚本代码集锦

 

1 、简单 loading 代码:

方法 1 、使用载入字节数判断

b=getBytesTotal();// 获取总的字节数

a=getBytesLoaded();// 已经下载的字节数

onEnterFrame=function(){// 进入帧时 , 进行判断

if (a == b) {// 如果载入的字节数等于总的字节数

delete this.onEnterFrame// 删除进入帧

gotoAndPlay('frame');// 转入到你要播放的帧

] else {// 否则

a=getBytesLoaded();// 已经下载的字节数

percent=int(a/b*100)+'%';// 计算已经下载的百分比

]

}

把上面方法放入第一帧就可以了

方法 2 、使用载入的帧数判断_

用 Action 语法地 if frame. is loaded 来实现 , 新建一层,这层专门放 Action,

第一帧,

ifFrameLoaded (' 场景 ', frame) {// 假如场景中地祯数已经载入

goto and play() // 跳至并播放某某祯 ( 自己设定 )

}

第二帧, O*Np@Q

goto and play(' 场景 1', 1)// 跳至并播放第一祯循环

再加上一个 load 地 MC 循环播放在这两帧的中间,就 OK 了。

 

2 、用 flash 做那种弹出的小窗口

分两步:

给 flash 中的按钮加入如下 action:

on (release) { idd{

getURL ('MM_openBrWindow('newweb.htm','','width=600,height=100')');

在 HTML 页面的 <head>...</head> 之间加入下面的 javascript. 代码 .

<script. language='javascript'>

<!-- ~Y

function MM_openBrWindow(theURL,winName,features) { //v2.0

window.open(theURL,winName,features); ;

}

//-->

</script>

 

3 、载入 swf 文件的控制

在 flash 中可以使用 loadmovie ()和 loadmovienum ()两个函数控制,具体代码如下:

loadmovie 载入的控制

_root.createEmptyMovieClip ( 'aa' , 1 );

with ( aa ) {

_x = 50 ;

_y = 100 ;

_width=200

_height=300

_alpha=50

loadMovie ( '02.swf' );

}

loadMovieNum 的载入控制:

loadMovieNum ( '02.swf' , 1 );

onEnterFrame. = function () {

if ( _level1 ) {

with ( _level1 ) {

_x = 50 ;

_y = 100 ;

}

delete onEnterFrame. ;

}

};

在 flash 2004 中,增加了 MovieClipLoader 类,使用它可以控制播放,下面是一个测试代码:

var mcl= new MovieClipLoader(); // 定义新的 MovieClipLoader 对象~

var listener = new Object(); // 定义一个新的对象,用来监听 load 进程

listener.onLoadProgress=function(target,loadedBytes,totalBytes ){ //onloadprogress 加载过程中每当将加载的内容写入磁盘时调用

// 其中 loadedBytes 是已经下载的字节, totalBytes 是正在加在的文件的总字节数

x=loadedBytes

y=totalBytes

//trace(x+ ' bytes 已经 load 了 ');

//trace(totalBytes + ' bytes 需要 load');

d=x*100/y // 计算已经载入的百分比

)

listener.onLoadInit = function(target) // 当执行加载的剪辑的第一帧上的动作时调用

{

if(d<100){ // 如果没有加载完成,不要播放

target.stop();

} else { // 加载完成,可以设置加载的 swf 文件开始播放的帧数

target.gotoAndPlay(2);

}

target._width=400 // 设置加载的影片的大小及其位置等相关属性

target._height=350

target._x=25

target._y=50

}

mcl.addListener(listener); // 注册一个新的监听对象

mcl.loadClip('***.swf',1)// 使用自定义的对象,加载 swf 文件

 

4 、设为首页

on (release) {

getURL('void(document.links.style.&#98;ehavior='url(#default#homepage)');voiddocument.links.setHomePage('http://www.flash8.net/')','_self', 'POST');

}

注意要将网页中的 flash 的 ID 号命名为 'links'

加入收藏夹

on (release) {

getURL('void window.external.AddFavorite('http://www.163.com',' 网页 ');','_self', 'POST');

}

 

5 、如何随机设置 MC 颜色?

方法 1 、 MC 实例名为 'mc'

mycolor=new Color('mc')

mycolor.setRGB(random(0xffffff))

方法 2 、 MC 实例名为 'mc'

mycolor=newColor('mc') [

mycolor.setRGB(random(16777215))

方法 3 、 myColor = new Color(mc);

myColorTransform. = new Object();// 用 new Object() 为

//setTrandform() 创建参数并随机取值

myra = random(100);

myrb = random(255);

myga = random(100);

mygb = random(255);

myba = random(100);

mybb = random(255);

myaa = random(100);

myab = random(255);

myColorTransform. = {ra:myra, rb:myrb, ga:myga, gb:mygb, ba:myba, bb:mybb, aa:myaa, ab:myab};

myColor.setTransform(myColorTransform);

方法 4 、 mycolor = new Color(mc);

mycolor.setRGB(random(255)<<16|random(255)<<8|random(255));

 

6 、关于随机数的技巧

用来产生 6--20 之间的 5 个不重复的随机数

1): 首先产生一个随机数 , 放在数组对象中的第一个位置

2): 产生一个新的随机数

3): 检查新产生的随机数和所有目前已产生的随机数是否相同 , 若是相同则返回 (2), 否则返回 (4)

4): 将新的随机数加入数组对象中下一个数组元素内

5): 检查数组对象个数是否已达到 5 个 , 若是跳到 (6), 否则返回 (2)

6): 结束

AS 如下 :

data1=newArray(5);

tot=1;

data1=[tot-1]=random(20-6+1)+6;

do{

gen_data=random(20-6+1)+6;

reapeat_data=0;

for(i=0,i<=tot-1;i++){

if(gen_data==data

reapeat_data=1;

break;

}

}

if(reapeat_data==0){

tot++

data[tot-1]=reapeat_data;

}

}while(tot<5);

trace(data1);

 

7 、如何禁止右键菜单、缩放、全屏

在第一桢中输入下面命令:

全屏-> FS Command ('fullscreen', true)

禁止缩放-> FS Command ('allowscale', False)

禁止菜单-> FS Command ('showmenu', False)

fscommand 的方法还是只能适用于 fp ,在网页中使用还是必须添加额外的参数

<PARAM Name='menu' value='false'>

或者用最简单的一句 as ,在 fp 和网页中均适用:

Stage.showMenu=false;

 

8 、如何实现双击效果?

把下面的代码放到按钮上:

on (press) {

time = getTimer()-down_time;

if (time<300) {

trace('ok');

}

down_time = getTimer();

}

这样的话,如果都用比较麻烦,写了一个类来判断

MovieClip.prototype.doubleClick = function() {

this.timer2 = getTimer()/1000;

if ((this.timer2-this.timer)<0.25) {

return true;

} else {

this.timer = getTimer()/1000;

return false;

}

};

继承了 mc 的类,可以重复使用,当然也可以封装为 2 。 0 的类

 

9 、如果要在浏览器中实现全屏效果,只需在 html 文件中加入以下代码即可:

<script>

window.open('*.swf','','fullscreen=1,menubar=no,width=800,height=600')

</script>

其中 *.swf 为要调用的 FLASH 文件,记住要将该文件放在 html 文件的同一路径下面。要退出全屏状态需按 ALT + F4 或退出。

如果在 swf 文件中,添加关闭按钮,使用下面的代码:

on(release) {

getURL('opener=null;window.close();');

}

 

10 、用 AS 怎么把影片倒放

function prev(target) {

target.gotoAndStop(target._totalframes);

target.onEnterFrame. = function() { [

if (this._currentframe>1) {

this.gotoAndStop(this._currentframe-1);

} else {

delete this.onEnterFrame;

}

};

}

prev(_root.mc); // 指定要倒退播放的 MC instance name 就可以了

 

11 、声音相关

之前为 MYSOUND 链接一个属性

1 : mysound=new Sound();// (注释) mysound 是一个变量名, new Sound 是一个构造函数,表示 mysound 是一个 Sound 对象。

以后可以通过 mysound 来调用 Sound 方法 }*HK[

2: mysound.attachSound('name'); 这里的 NAME 就是你之前在标识符里写的东西了,对应好了就 OK !

3: mysound.setVolume(50); 这个是控制声音播放时的声音大小,取值在 0 到 100 ,意义大家都知道吧,不会有人认为 0 是最大声吧 ~

4:mysound.start(0.01); 这个语句是表示开始播放声音,()里的参数表示声音开始的位置,单位为秒,再来就是循环几次 ~ 比如 mysound.start(30 , 2);// 声音从 30 秒处开始循环 2 次。

 

12 、倒计时

首先新建文件以后,在主场景中分别用文字工具建立三个动态文本框,变量名字分别是: leftmin,leftsec,leftmilli, 也就是分别来显示计时的分钟、秒数和毫秒数。

然后新建一层,在第一桢写上如下代码即可:(已经做了详细解释,相信大部分朋友能够理解这些代码的意思)

onLoad = function(){// 当场景加载以后执行

totalmin = 40;

totalsec = 60;

totalmilli = 100;

// 初始化一些变量,在后面的计算中要用到这些变量

}

nEnterFrame. = function(){// 逐桢执行动作'

currentsec = Math.round(getTimer()/1000);

// 求出当前影片已经播放的秒数(取整)

currentmilli = Math.round(getTimer()/10);

// 求出当前影片已经播放的毫秒数(取整)

leftsec = totalsec- currentsec;~

// 剩余的秒数等于总的秒数减去已经播放的秒数

leftmin = totalmin; ^

// 开始分钟数等于总的分钟数,开始是不变的

leftmilli = totalmilli - currentmilli;

// 剩余的毫秒数等于总的毫秒数减去已经播放的毫秒数

if(leftsec<10){leftsec = '0'+leftsec}

if(leftmin<10){leftmin = '0'+leftmin}

if(leftmilli<10){leftmilli = '0'+leftmilli}

// 以上三句是当分钟数、秒数、毫秒数小于 10 的时候,前面加上一个 “0” 。

if(leftmilli<=1){totalmilli+=100;} );

// 当计时剩下的毫秒小于 1 的时候,总秒数再加 100 ,以便下一次重新计时(这里注意得到的影片播放的毫秒数是一直增加的)

if(leftsec == 0){// 当剩余的秒数等于 0 的时候

totalsec+=60;// 类似上面的解释,总秒数加 60

totalmin-=1;// 这时候相当于过了 60 秒,所以分钟数要减 1

if(leftmin ==0){// 当分钟数等于 0 的时候,计时结束

leftsec = '00'; ,

leftmin = '00';

leftmilli = '00';

// 将三个计时框都附值为 0

delete onEnterFrame;// 删除这个逐桢动作,以节省资源

};

}

}

 

13 、键盘控制上下左右

怎样用键盘中的上下左右控制动画!

onClipEvent (load) {

speed = 5;// 当 MC 载入时,设置速度为 5 ,也就是说每按一下方向键,就移动 5 象素

}

onClipEvent (enterFrame) {

if (Key.isDown(Key.LEFT)) {

this._x -= speed;// 当 ← 被按下时,自身的 X 位置不断减 speed , X 轴坐标不断减小,也就是不断向左移动

}

if (Key.isDown(Key.RIGHT)) {

this._x += speed;// 当 → 被按下时,自身 X 位置不断加 speed , X 轴坐标不断增加,也就是不断向右移动

}

if (Key.isDown(Key.UP)) {

this._y -= speed;// 当 ↑ 被按下时,自身的 Y 位置不断减 speed , Y 轴坐标不断减小,也就是不断向上移动

}

if (Key.isDown(Key.DOWN)) {

this._y += speed;// 当 ↓ 被按下时,自身的 Y 位置不断加 speed , Y 轴坐标不断增加,也就是不断向下移动

}

}

onEnterFrame. = function () {

if (Key.isDown(Key.LEFT)) {

mc._x -= 20;

}

if (Key.isDown(Key.RIGHT)) {

mc._x += 20;

}

if (Key.isDown(Key.UP)) {

mc._y -= 20;

}

if (Key.isDown(Key.DOWN)) {

mc._y += 20;

}

if (mc._x<0) {

mc._x = 0;

}

if (mc._x>550-mc._width) {

mc._x = 550-mc._width;

}

if (mc._y<0) {

mc._y = 0;

}

if (mc._y>400-mc._height) {

mc._y = 400-mc._height;

}

}

 

14 、随机调用外部图片

用 9 个图片为例子,这个也可以使用 loadmovie 调用

num=Math.round(9*Math.random()+1)

// 设置随即数字( 1-9 )

_root.createEmptyMovieClip('pic', 1);

// 创建一个空的 PIC MC 用来装载外面载入的图片

_root.pic._x = 200;

_root.pic._y = 200;

// 简单设置一下 MC 的位置

_root.pic.loadMovie(num+'.jpg',1);

// 随即载入外面的图片

 

15 、暂停

可以把要暂停的地方 , 帧数放长啊,或者在当前帧写

stop();

function pause(){

clearInterval(pauseInterval);

play();

pauseInerval=setInterval(pause,1000); //1000 是 1 秒

 

 

16 、怎样改变某一影片剪辑的播放速度

function go(obj) {

with (obj) {

nextFrame();

if (_currentframe. == _totalframes) {

gotoAndStop(1);

}

}

)

go(mc);

setInterval(go, 100, mc);

 

17 、怎样调用 .chm 文件

getURL(mk:@MSITStore:F:\...\xxx.chm::/index.htm)

 

18 、随机生成一个有 30 个数字的数组,这 30 个数字随机在 1~500 之间取,且不能重复,而且要乱序的。

tmp = new Array();

k = new Array();

for (i=0; i<=499; i++) {

tmp = i+1;

}

for (i=0; i<=29; i++) {

k = tmp.splice(random(tmp.length-1), 1);

}

trace(k);

 

 

Flash按钮动作代码

 

1、转下一帧并继续播放

on (release)

{

play();

}

2、转第三帧并播放

on (release)

{

gotoAndPlay(03);

stopAllSounds();

}

3、全屏播放

fscommand('fullscreen', 'true');

4、退出

on (release)

{

if (substring(_root._url, 8, 1) == '/')

{

fscommand('quit');

}

else

{

getURL('javascript:window.close()');

} // end if

}

5、返回第一帧

on (release)

{

gotoAndPlay(01);

stopAllSounds();

}

 

 

FLASH脚本代码大全

 

- Go to 跳转到指定的帧

- Play 播放

- Stop 停止

- Toggle High Quality 在高画质和低画质间切换

- Stop All Sounds 停止所有声音的播放

- Get URL 跳转至某个超联结

- FSCommand 发送FSCommand命令

- Load Movie 装载影片

- Unload Movie 卸载影片

- Tell Target 告知目标

- If Frame Is Loaded ..判断帧是否被完全载入

- On Mouse Event 鼠标事件

 

 

其他Actions。包括:

 

- break 跳出循环

- call 调用指定帧(一般喊有某个特定函数)

- comment 注释

- continue 继续循环

- delete 删除一个对象(Object)中的变量

- do while do while循环

- duplicateMovieClip 复制MC

- else 否则(与if联用)

- else if 否则如果(与if联用)

- evaluate 调用自定义函数(Function)

- for for循环

- for .. in 依次取得对象(Object)中的各个属性或者某个数组中的所有元素

- FSCommand 发送FSCommand命令

- function 声明自定义函数

- getURL 跳转至某个超联结

- goto 跳转到指定的帧

- if 如果

- ifFrameLoaded ..帧是否完全被载入

- include 读入外部的ActionScript程序文件(.as)

- loadMovie 装载MC

- loadVariables 转载外部文件中的数据,这些外部文件可以是文本文件,或者是由ASP/CGI等脚本返回的文本值

- on 鼠标事件的触发条件

- onClipEvent MC的事件触发程序

- play 播放

- print 输出到打印机

- removeMovieClip 删除MC

- return 在函数(function)中返回一个值

- set variable 设定变量值

- setProperty 设定属性

- startDrag 开始拖动

- stop停止

- stopAllSounds 停止所有声音的播放

- stopDrag 停止拖动

- swapDepths 交换两个MC的深度

- tellTarget 指定Action命令生效的目标

- toggleHighQuality 在高画质和低画质间切换

- trace 跟踪调试

- unloadMovie 卸载MC

- var 声明局部变量

- while 当..成立时..

- with 对..对象(Object)做..

 

操作符( Operators)

 

- ! 逻辑非操作

- != 不等于

- '' 字符串

- % 取余数

- && 逻辑与操作

- () 括号

- * 乘号

- + 加号

- ++ 变量自加一

- - 减号

- -- 变量自减一

- / 除号

- < 小于

- <= 小于等于

- <> 不等于

- == 相等

- > 大于

- >= 大于等于

- and 逻辑与

- not 逻辑非

- or 逻辑或

- typeof 返回变量类型

- void 实体,无返回

- | | 逻辑或操作

+ Bitwise Operators 位操作符

- & 位与操作

- << 位左移

- >> 位右移

- >>> 位右移(无符号)

- ^ 位异或操作

- | 位或操作

- ~ 补位操作

+ Compound Assign Operators 复合操作符

- %= A%=B 等效于 A=A%B

- &= A&=B 等效于 A=A&B

- *= A*=B 等效于 A=A*B

- += A+=B 等效于 A=A+B

- -= A-=B 等效于 A=A-B

- /= A/=B 等效于 A=A/B

- <<= A<<=B 等效于 A=A<<B

- >>= A>>=B 等效于 A=A>>B

- >>>= A>>>=B 等效于 A=A>>>B

- ^= A^=B 等效于 A=A^B

- |= A|=B 等效于 A=A|B

+ String Operators 字符串操作符(注:实质上是ASCII的比较)

- add 连接两个字符串

- eq A eq B 字符串A值与字符串值B相等

- ge A ge B 字符串A值大于等于字符串B值

- gt A gt B 字符串A值大于字符串B值

- le A le B 字符串A值小于等于字符串B值

- lt A lt B 字符串A值小于字符串B值

- ne A ne B 字符串A值不等于字符串B值

+ Functions 函数

- Boolean 取表达式的布尔值(True 或 False)

- escape 除去URL串中的非法字符,将其参数按照URL编码的格式转化为字符串(String)

- eval 访问并计算表达式(expression)的值,并以字符串(String)的形式返回该值

- false 布尔非值(0)

- getProperty 获取属性

- getTimer 获取从电影开始播放到现在的总播放时间(毫秒数)

- getVersion 获取浏览器的FLASHPlayer的版本号

- globalToLocal 场景(Scene)中的坐标转换成MC中的坐标

- hitTest 测试一个点或者MC是否同另一个交叉(即冲突检测)

- int 把十进制数值强制转换成整数

- isFinite 测试数值是否为有限数

- isNaN 测试是否为非数值

- keycode 返回键盘按下键的键盘值(ASCII值)

- localToGlobal MC中的坐标转换成场景(Scene)中的坐标

- maxscrol

 

一、FLASH脚本基础入门讲解

 

认识“动作”面板

在Flash中,动作脚本的编写,都是在“动作”面板的编辑环境中进行,熟悉“动作”面板是十分必要的。

按【F9】键调出“动作”面板,可以看到“动作”面板的编辑环境由左右两部分组成。左侧部分又分为上下两个窗口。。

左侧的上方是一个“动作”工具箱,单击前面的图标展开每一个条目,可以显示出对应条目下的动作脚本语句元素,双击选中的语句即可将其添加到编辑窗口。

下方是一个“脚本”导航器。里面列出了FLASH文件中具有关联动作脚本的帧位置和对象;单击脚本导航器中的某一项目,与该项目相关联的脚本则会出现在“脚本”窗口中,并且场景上的播放头也将移到时间轴上的对应位置上。双击脚本导航器中的某一项,则该脚本会被固定。

右侧部分是“脚本”编辑窗口,这是添加代码的区域。可以直接在“脚本”窗口中编辑动作、输入动作参数或删除动作。也可以双击“动作”工具箱中的某一项或“脚本编辑”窗口上方的【添加脚本】工具,向“脚本”窗口添加动作。

在“脚本”编辑窗口的上面,有一排工具图标,在编辑脚本的时候,可以方便适时的使用它们的功能。

在使用“动作”面板的时候,可以随时点击“脚本”编辑窗口左侧的箭头按钮,以隐藏或展开左边的窗口。将左面的窗口隐藏可以使“动作”面板更加简洁,方便脚本的编辑。

好了,动作面板就介绍这些,有个印象,不要求记住,工具栏上每个工具的作用和功能将在以后的课程中边用边熟悉。

 

 

如何编写flash中的脚本

 

首先,要知道编写脚本,不需要用户对AS有完全的了解!

现在要考虑的问题是,如何在你的flash中添加编写脚本?简单的说,添加脚本可分为两种:一是把脚本编写在时间轴上面的关键桢上面(注意,必须是关键桢上才可以添加脚本)。二是把脚本编写在对象身上,比如把脚本直接写在MC(影片剪辑元件的实例)上、按钮上面。

此外,大家也需要简单理解一下flash是如何执行你编写的脚本的。当你在时间周的关键桢上添加了脚本,那么当flash运行的时候,它会首先执行这个关键桢上的脚本,然后才会显示这个关键桢上的对象。

还有一些简单的知识,AS中的对象都包括什么呢?它可以包含数据,也可以是舞台上的电影剪辑,也可以是舞台上的按钮等。既然包含了那么多对象,那么每种对象肯定有各自的属性!比如电影剪辑(movieclip)对象,它的:属性就有_height(高度),_rotation(旋转),等,这些属性不需要你去特意的记忆,当使用的时候可以随时翻阅脚本字典。在以后的教程中会陆续给大家介绍一些基础脚本的使用技巧。

 

一、需要学到的基本AS命令如下:

stop()、

play()、

gotoandplay()、

gotoandstop()、

nextFrame()、

prevFrame()、

nextScene()、

prevScene();、

stopAllSounds();

按钮的AS编写规则

播放

on

(release)

{

_root.mc.play();

}

如果要在按钮身上写脚本的话,必须使用on(事件){//脚本程序}的格式来写!上面的脚本作用就是:当你在这个按钮上按一下鼠标(release事件)的时候,就会执行下面的_root.mc.play();程序,它的意思是让舞台上的mc开始播放!

6、同理:咱们选中舞台上的暂停按钮,在它上面输入:

on

(release)

{

_root.mc.stop()

}

然后依次在快退上输入:

on

(release)

{

_root.mc.prevFrame();

//prevFrame表示回到动画的上一桢

}

在快进的按钮上输入:

on

(release)

{

_root.mc.nextFrame();

}

在停止的按钮上输入:

on

(release)

{

_root.mc.gotoAndStop(1);//跳到

mc影片的第一桢,并停止播放!

}

二、按钮

AS的编写

在flash中的交互功能一般是由按钮来完成的。掌握按钮的编写规则也是一个闪客的基本技能。

OK,现在咱们来说说按钮脚本如何编写。上一讲中提过,AS脚本编写可以写在时间轴的关键桢上,也可以写在对象本身上面。按钮也不例外,既可以写在时间轴上,也可以写在按钮本身上面。只不过这两种编写规则都要遵循一定的规矩,这是后话。

现在咱们来做一个例子,做一个按钮,这个按钮要实现的功能就是打开一个指定的网页。(这个例子非常基础,用这个例子来讲解按钮AS两种编写方法。)

 

第一种:把脚本写在按钮本身。

一、在舞台上绘制一个矩形,选中矩形并按F8,将这个矩形转换成按钮元件。

二、编写动作脚本:

选中按钮,按F9,打开动作面板,在专家模式下输入以下脚本:

on(release){

getURL('http://3800hk.com/','_blank')

}

现在这个按钮就实现了一个打开网页的功能。通过例子你应该注意到,按钮的

AS书写规则就是:

on(事件){

//要执行的脚本程序,刚才的例子是用getURL来打开一个网页。你也可以使用脚本程序来执行其他功能,例如跳转到某一个桢,或载入外部一个动画文件。

}

大可以看到,其实就一个on语句,这个on语句就是按钮的AS编写规则了。

需要注意的是on里面的事件,这个事件你可以理解为是鼠标或键盘的动作。刚才的例子我们使用的事件是release(按一下鼠标)我现在把常用的按钮事件列出来:

事件名字说明Press事件发生于鼠标在按钮上方,并按下鼠标Release发生在按钮上方按下鼠标,接着松开鼠标时。也就是“按一下”鼠标Releaseoutside发生于在按钮上方按下鼠标,接着把光标移动到按钮之外,然后松开鼠标

Rollover当鼠标滑入按钮时

Rollout当鼠标滑出按钮时

Dragover发生于按着鼠标不放,光标滑入按钮

Dragout发生于按着鼠标不放,光标滑出按钮

Keypress发生于用户按下特定的键盘按键时

 

第二种按钮AS的编写方法。

这种方法是把脚本程序写在时间轴上,而不是按钮本身上面。

一、选中按钮,在下面的属性面板中为按钮起一个名字,这里我起了一个

bt

二、选中时间轴的第一桢,按F9打开动作面板。输入如下脚本:

bt.onrelease=function()

{

getURL('http://http://3800hk.com/',

'_blank');

};

这种编写

AS的方法要遵循的规则就是下面的公式而已:

按钮实例的名字.事件名称=function(){

//要执行的脚本程序。

}

大家只要记住这个公式就可以套用了。

按钮的AS就先将到这了,这个可以算是基本技能了。希望大家都能掌握。

 

三、影片剪辑的AS编写影片剪辑在flash中可以说是使用最多的一种元件了,那么对于它的AS也是不少。

在讲解之前,我还是要重新说一下电影剪辑AS的编写规则,和上次讲按钮一样,

分为两种,一种是写在电影剪辑本身上,一种是写在时间轴上面。

一、首先我们先来做个简单的小例子。

或许你不用AS就能做出一个小球的移动动画。但是如果让你用AS来实现小球的移动呢?

 

下面来看看如何用AS来实现吧。

在这个例子里,你首先会了解到如何在电影剪辑本身上编写AS,以及编写规则。

1、新建立一个影片剪辑元件,里面你就随便画一个圆吧。之后把这个影片剪辑拖放到舞台之中(也就是创建一个此影片剪辑的实例)。

2、现在开始编写脚本,选中这个MC,按F9打开动作面板,按照图01显示选择

onClipEvent,之后在显示的事件中选择enterFrame,然后在里面编写脚本如下:

this._x+=5

这个脚本编写之后应该是:

onClipEvent

(enterFrame)

{//

enterFrame的意思四以影片帧频不断地触发此动作this._x+=5;//this代表这个影片剪辑自身。_x表示影片剪辑的X轴坐标。

}

呵呵,按下你的ctrl+回车测试一下吧,一个简单的移动动画就搞定了。

从这个例子咱们不难看出,如果把AS写在影片剪辑本身上,那么它是有自己的书写格式的。正确的书写格式就是:

onClipEvent

(事件){

//需要执行的脚本程序

}

这个可以看成是公式,你记住就行了,是写在影片剪辑身上的。括号里的“事件”其实是个触发器,当事件发生时,执行该事件后面花括号中的语句。,具体有哪些事件,我把它们都列出来。

-load影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。

-unload在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。处理与

Unload影片剪辑事件关联的动作之前,不向受影响的帧附加任何动作。

-enterFrame以影片帧频不断地触发此动作。

-mouseMove每次移动鼠标时启动此动作。

_xmouse和_ymouse属性用于确定当前鼠标位置。

-mouseDown当按下鼠标左键时启动此动作。

-mouseUp当释放鼠标左键时启动此动作。

-keyDown当按下某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息。

-keyUp当释放某个键时启动此动作。使用Key.getCode方法获取最近按下的键的有关信息。

-data当在loadVariables或loadMovie动作中接收数据时启动此动作。当与

loadVariables动作一起指定时,data事件只发生一次,即加载最后一个变量时。当与loadMovie动作一起指定时,获取数据的每一部分时,data事件都重复发生。

了解了事件之后,你可以自己试着修改一下脚本,如果让你们点一下鼠标,舞台上的圆就移动一下,该怎么做呢?

关于把AS写在影片剪辑本身的例子先讲到这,下面来看看如果把AS写在时间轴上面的话,应该怎么写。

首先你把刚才的脚本去掉。然后需要为这个影片剪辑实例起一个名字,比如起名为mc,在选中时间轴的第一桢,打开动作面板,输入以下脚本:

mc.onEnterFrame

=function(){

this._x

+=5;//你也可以把这句改为mc._x+=5自己想一下为什么。

};

显而易见,在时间轴上的写法就应该套用以下公式:

实例名.事件名称=function(){

//脚本程序

}

需要注意的是,这种写法的事件名称不要忘了在前面加一个

on,比如,事件如果是enterframe的话,你就应该写成onenterframe

下面简单说一下影片剪辑的属性。比如,影片剪辑有自己的X、Y轴坐标,有自己的透明度(_alpha),这些都是它的属性。

那么如何使用这些属性呢?你可以使用“点”语法来对属性进行设置。

把上面的脚本修改一下。

mc.onenterframe

=function()

{

mc._x

+=5;

mc._alpha

=random(100);

};

这里我加了一句this._alpha=random(100),它是设置影片剪辑的透明度的,使用的语句就是_alpha。后面的random()函数是随机选取一个100以内的数字作为它的透明度。从这个句子可以看出,“点”语法使用方法就是:实例名.属性(mc._alpha),你甚至可以简单理解为“点”就是“的”,那么this._alpha这句你就可以理解为:影片剪辑mc的透明度上面的脚本mc._alpha=random(100)也可以改为_root.mc._alpha=random(100)那么,你就可以理解为:舞台上的影片剪辑mc的透明度是随机选择100内的值。

 

四、动态文本框

 

一、flash中的动态文本使用方法

在flash中,文本工具提供了三种文本类型。分别是:静态文本、动态文本和输入文本。

下面讲解的内容属于动态文本的AS编写规则。要创建一个动态文本非常简单,

只需要选中文本工具,然后选择动态文本类型,然后在舞台上拖拽出所需要的

动态文本框就行了。

二、如何为动态文本赋值

当在舞台上拖拽出动态文本框之后,可以直接在里面进行文本输入或粘贴外部文本内容。那么用AS如何来对动态文本框赋值呢?在这里为大家介绍两种方法进行赋值!

1、使用动态文本的实例名字来赋值

操作步骤:

(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个名字,例如

abc

(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:

abc.text

='爱国者安全网'按下ctrl+回车就可进行测试了。从这个简单的例子可以知道,如果要用文本实例名字来进行赋值的话,必须使用以下格式:动态文本实例的名字.text=”需要赋值的内容”

 

2、使用变量来赋值

(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个变量名

3800hk。

(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:

3800hk='欢迎大家来到爱国者安全网学习!'

不难看出,使用变量赋值更为简单实用!赋值格式为:变量名=“赋值的内容”

以上两种赋值方法如果内容过多需要换行的时候,需要使用行用回车符(

“\r”即ASCII13)分隔!

 

三、如何载入外部txt文本里的内容,当内容过多的时候,使用上面的方法并不是太好,我们可以使用下面的方法,从外部获取文本资料内容!而外部的资料内容就放在一个普通的txt(记事本)文件中。

具体操作步骤如下:

1、创建一个动态文本实例,并为这个动态文本实例起一个变量名

hk

2、选中时间轴的第一桢,打开动作面板,输入以下脚本:

loadVariablesNum('heiying.txt',0);//载入外部名字叫heiying.txt的文本文件,加载级别为0

3、现在来准备外部的heiying.txt文本文件了。注意:要把这个文本文件和你刚才做的flash文件放在一个文件夹里!这个txt文件里的资料应该按照如下格式编写:flash中动态文本变量的名字=这里就是所需要的资料内容。对应上面的格式,外部heiying.txt中的内容为:hk=欢迎大家来到爱国者安全网学习!最后一点,需要将这个文本文件保存为UTF-8格式。

4、完成以上步骤之后,就可以进行测试了。

下面介绍另外一种载入外部文本资料的方法,并介绍当文本内容过多时候,如

何使用滚动条组件。

(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还可以使用刚才所创建的文本文件,为了测试滚l 文本框的最大行度- newline 换行符- Number 将参数转换成数值其返回值有以下四种情况:

如果 x 为一数字,则返回值即为该数字;

如果 x 为一布尔数,则返回0或1;

如果 x 为一字符串,则函数将x解释为一个指数形式的十进制数;

如果x未定义,则返回0。

 

 

- parseFloat 将字符串转换成浮点数

- parseInt 将字符串转换成整数

- random 产生0到指定数间的随机数

- scroll 文本框中的起始滚动行

- String 将参数转换成字符串

- targetPath 返回指定实例MC的路径字符串

- true 布尔是值(1)

- 保留字符串中的%XX格式的十六进制字符

 

+ String Functions 字符串函数

- chr 将ASCII码转换成相应字符

- length 返回字符串的长度

- mbchr 将ASCII/S-JIS编码转换成相应的多字节字符

- mblength 返回多字节字符串的长度

- mbord 将多字节字符转换成相应的ASCII/S-JIS编码

- mbsubstring 截取多字节字符串中的字串

- ord 将字符转换成ASCII码

- substring 截取字符串中的子串

 

+ Properties 属性

- _alpha Alpha值(透明度值)

- _currentframe 在MC中的当前帧数

- _droptarget 当使用Start drag拖动一个MC时,实时地返回该MC的绝对路径

- _focusrect 高亮按钮或者某个当前区域的显示与否(True显示/Flase不显示)

- _framesloaded 已载入的影帧数

- _height MC的高度

- _highquality 画质的高低(True高画质/False低画质)

- _name MC的实例名

- _quality 当前画质(字符串值) LOW,MEDIUM,HIGH,BEST

- _rotation MC旋转的角度(单位:度)

- _soundbuftime 声音的缓冲区大小(默认值5,单位:秒)

- _target MC的路径

- _totalframes 总帧数

- _url 电影被调用的URL地址

- _visible 是否可视(True可视/False不可视)

- _width MC的宽度

- _x MC的x坐标

- _xmouse 鼠标的x坐标

- _xscale MC的X轴向缩放度

- _y MC的y坐标

- _ymouse 鼠标的y坐标

- _yscale MC的y轴向缩放度

 

+ Objects 对象

+ Array 数组

- concat 合并多个数组

- join 将一个数组中的元素转化成字符串,并通过特定的分割符进行联结,并返回结果字符串

- length 返回数组长度

- new Array 新建数组对象

- pop 出栈 (FILO 先入后出)

- push 入栈 (入队列)

- reverse 反相(颠倒数组,及第一个元素和最后一个元素互换……)

- shift 出队列 (FIFO 先入先出)

- slice 截取数组中的子串生成新的数组

- sort 数组元素的排序

- splice 从数组中指定元素起删除指定个数的元素或者删除指定元素

- unshift 从数组头部插入一个元素

 

+ Boolean 布尔对象

- new Boolean 新建布尔型对象

- toString 将布尔型对象的值转换成字符串值

- valueOf 获取布尔型对象的值(返回值为布尔型)

 

+ Color 颜色对象

- getRGB 获取颜色值的RGB分量(返回值0xRRGGBB十六进制)

- getTransform 获取颜色值的转换量(返回值 cxform 型) [不太清楚]

- new Color 新建一颜色对象

- setRGB 设置颜色值的RGB分量(参数为0xRRGGBB十六进制)

- setTransform 设置颜色值的转换量(参数为 cxform 型) [不太清楚]

 

+ Date 时间和日期对象

- getDate 获取当前日期(本月的几号)

- getDay 获取今天是星期几(0-Sunday,1-Monday...)

- getFullYear 获取当前年份(四位数字)

- getHours 获取当前小时数(24小时制,0-23)

- getMilliseconds 获取当前毫秒数

- getMinutes 获取当前分钟数

- getMonth 获取当前月份(注意从0开始:0-Jan,1-Feb...)

- getSeconds 获取当前秒数

- getTime 获取UTC格式的从1970.1.1 0:00以来的秒数

- getTimezoneOffset 获取当前时间和UTC格式的偏移值(以分钟为单位)

- getUTCDate 获取UTC格式的当前日期(本月的几号)

- getUTCDay 获取UTC格式的今天是星期几(0-Sunday,1-Monday...)

- getUTCFullYear 获取UTC格式的当前年份(四位数字)

- getUTCHours 获取UTC格式的当前小时数(24小时制,0-23)

- getUTCMilliseconds 获取UTC格式的当前毫秒数

- getUTCMinutes 获取UTC格式的当前分钟数

- getUTCMonth 获取UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)

- getUTCSeconds 获取UTC格式的当前秒数

- getYear 获取当前缩写年份(当前年份减去1900)

- new Date 新建日期时间对象

- setDate 设置当前日期(本月的几号)

- setFullYear 设置当前年份(四位数字)

- setHours 设置当前小时数(24小时制,0-23)

- setMilliseconds 设置当前毫秒数

- setMinutes 设置当前分钟数

- setMonth 设置当前月份(注意从0开始:0-Jan,1-Feb...)

- setSeconds 设置当前秒数

- setTime 设置UTC格式的从1970.1.1 0:00以来的秒数

- setUTCDate 设置UTC格式的当前日期(本月的几号)

- setUTCFullYear 设置UTC格式的当前年份(四位数字)

- setUTCHours 设置UTC格式的当前小时数(24小时制,0-23)

- setUTCMilliseconds 设置UTC格式的当前毫秒数

- setUTCMinutes 设置UTC格式的当前分钟数

- setUTCMonth 设置UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)

- setUTCSeconds 设置UTC格式的当前秒数

- setYear 设置当前缩写年份(当前年份减去1900)

- toString 将日期时间值转换成'日期/时间'形式的字符串值

- UTC 返回指定的UTC格式日期时间的固定时间值

 

+ Key 键盘对象

- BACKSPACE Backspace(<-)键

- CAPSLOCK CapsLock键

- CONTROL Ctrl键

- DELETEKEY Delete(Del)键

- DOWN 方向下键

- END End键

- ENTER Enter(回车)键

- ESCAPE Esc键

- getAscii 获取最后一个按下或松开的键的对应字符的Ascii码

- getCode 获取最后一个被按下的键的键盘扫描码

- HOME Home键

- INSERT Insert(Ins)键

- isDown 当指定键被按下时返回True值

- isToggled 当Caps lock或者Num Lock键被锁定时返回真(True)

- LEFT 方向左键

- PGDN PageDown(PGDN)键

- PGUP PageUp(PGUP)键

- RIGHT 方向右键

- SHIFT Shift键

- SPACE 空格键

- TAB Tab键

- UP 方向上键

 

+ Math 数学函数对象

- abs abs(n) 取n的绝对值

- acos acos(n) n的反余弦(返回值单位:弧度)

- asin asin(n) n的反正弦(返回值单位:弧度)

- atan atan(n) n的反正切(返回值单位:弧度)

- atan2 atan2(x,y) 计算x/y的反正切

- ceil ceil(n) 取靠近n的上限的整数(向上取整)

- cos cos(n) 取n的余弦(n的单位:弧度)

- E Euler(欧拉)指数(约为2.718)

- exp 指数

- floor floor(n) 取靠近n的下限的整数(向下取整)

- LN10 ln10(约等于2.302)

- LN2 ln2(约等于0.693)

- log 取自然对数(e为底)

- LOG10E 10为底取E的对数(约等于0.434)

- LOG2E 2为底取E的对数(约等于1.443)

- max 返回两参数中的最大值

- min 返回两参数中的最小值

- PI 圆周率(约等于3.14159)

- pow pow(x,y) x的y次方

- random 产生0-1间的随机数

- round 四舍五入取整

- sin sin(n) 取n的正弦(n的单位:弧度)

- sqrt 开根号

- SQRT1_2 0.5开根号(约等于0.707)r /> - SQRT2 2开根号(约等于1.414)

- tan tan(n) 取n的正切(n的单位:弧度)

 

+ MovieClip 影片夹子对象

- attachMovie 产生一个库中MC的实体并将它绑定到某个电影上

- dupicateMovieClip 复制当前MC产生新的MC

- getURL 使浏览器浏览指定页面

- gotoAndPlay 跳转到指定帧并播放

- gotoAndStop 跳转到指定帧并停止播放

- loadMovie 引入一个外部电影到指定层

- loadVariables 引入外部文件中的变量值

- nextFrame 下一帧

- play 播放

- prevFrame 前一帧

- removeMovieClip 删除用duplicateMovieClip创建的MC

- startDrag 开始拖动MC

- stop 停止MC的播放

- stopDrag 停止拖动MC

- unloadMovie 卸载由loadMovie引入的Movie

 

+ Mouse 鼠标对象

- hide 隐藏鼠标指针

- show 显示鼠标指针

 

+ Number 数值对象

- MAX_value FLASH5 所允许的最大数值1.79769313486231 e 308

- MIN_value FLASH5 所允许的最小数值5 e -324

- NaN 是否为非数值(Not a Number)

- NEGATIVE_INFINITY 是否为负数

- new Number 新建数值对象

- POSITIVE_INFINITY 是否为正数

- toString 将数值转换成字符串

 

+ Object 对象

- new Object 新建对象

- toString 转换对象为字符串

- valueOf 返回对象的值

 

+ Selection 选择区对象

- getBeginIndex 获取可编辑文本区的起始位置,-1表示无可编辑文本区

- getCaretIndex 获取当前的编辑位置,-1表示没有可编辑文本区

- getEndIndex 获取可编辑文本区的结束位置,-1表示无可编辑文本区

- getFocus 获取当前的激活文本区的文本变量名

- setFocus 设置当前的激活文本区

- setSelection 设置可编辑文本的起始位置和终止位置

 

+ Sound 声音对象

- attachSound 绑定库中的一个声音

- getPan 获取声音的混音值 [不太清楚]

- getTransform 获取当前声音的变换量(返回值类型:sxform) [不太清楚]

- getVolume 获取当前声音的音量(百分比)

- new Sound 新建声音对象

- setPan 设置声音的混音值 [不太清楚]

- setTransform 设置当前声音的变换量(参数类型:sxform) [不太清楚]

- setVloume 设置当前声音的音量(百分比)

- start 开始播放当前声音

- stop 停止播放当前声音

 

+ String 字符串对象

- charAt 在指定的索引表中返回一个字符

- charCodeAt 在指定的索引表中返回一个字符的代码

- concat 联结合并多个字符串

- fromCharCode 从字符代码组构造出一个新的字符串

- indexOf 在字符串中寻找子串,返回子串起始位置或-1(-1表示未找到)

- lastIndexOf 在字符串中寻找子串,返回子串终止位置或-1(-1表示未找到)

- length 返回字符串的长度

- new String 新建字符串对象

- slice 返回字符串中指定截取的子串

- split 根据限定符将字符串转换成一个数组

- substr substr( start, length ) 返回从start开始,共length长的子串r /> - substring substring( indexA, indexB ) 返回indexA..indexB之间的子串

- toLowerCase 将字符串中的大写字符全部转换成小写

- toUpperCase 将字符串中的小写字符全部转换成大写

 

+ XML 可扩充性标记语言对象

- appendChild 添加一个子结点到指定的XML元素

- attributes XML元素的属性数组

- childNodes 一个XML元素的子结点数组

- cloneNode 克隆(复制)当前结点

- createElement_x 新建一个新的XML元素

- createTextNode 新建一个新的XML文本结点

- firstChild 返回当前XML结点的第一个子结点

- hasChildNodes 当前XML结点是否有子结点(返回true有子结点/flash则无)

- insertBefore 在一个指定的XML元素的子结点前插入一个新的子结点

- lastChild 返回当前XML结点的最后一个子结点

- load 从指定的URL把XML元素引入FLASH中

- loaded 当XML元素引入或是发送同时引入FLASH中后,返回true值

- new XML 新建一个XML对象

- nextSibling 当前XML结点的下一个结点

- nodeName 返回当前XML结点的名字

- nodeType 返回当前XML结点的类型(1-元素,3-文本)

- nodevalue 返回当前XML结点的值(text型返回文本)

- onLoad 当引入或发送同时引入时触发事件

- parentNode 返回当前XML结点的父结点

- parseXML 将XML字符串转换成XML对象

- previousSibling 当前XML结点的前一个结点

- removeNode 从XML文本中删除结点

- send 从FLASH中把一个XML元素发送到指定的URL地址

- sendAndLoad 从FLASH中把一个XML元素发送到指定的URL地址同时引入XML结果

- toString 把XML对象转换为XML字符串表达

 

+ XMLSocket XML套接口

- close 关闭一个XML套接口

- connect 连接一个XML套接口,指定URL,并定义其端口号

- new XMLSocket 建立一个新的XML套接口

- onClose 关闭XML套接口时触发事件

- onConnect 连接XML套接口时触发事件

- onXML 从服务器上获取XML时触发事件

- send 发送XML给服务器

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM