Flash常用的动作命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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("/doc/8280167b7fd5360cba1 adb29.html ");
}
13、打开一个网页,如果该“网页”是在网络上的其他站点里:on(release){
getURL(/doc/8280167b7fd5360cba1a db29.html );
}
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.getV olume()//读取声音的音量
5.mysound.setV olume()//设置音量
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 页面的... 之间加入下面的javascript. 代码.
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,totalB ytes ){ //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.behavior='url(#default#h omepage)');voiddocument.links.
setHomePage('/doc/8280167b7fd5360cba 1adb29.html /')","_self", "POST");
}
注意要将网页中的flash 的ID 号命名为"links"
加入收藏夹
on (release) {
getURL("void
window.external.AddFavorite('/doc/82801 67b7fd5360cba1adb29.html ',' 网页');","_self", "POST"); }
5 、如何随机设置MC 颜色?
方法 1 、MC 实例名为"mc"
mycolor=new Color("mc")
mycolor.setRGB(random(0xffffff))
方法 2 、MC 实例名为"mc"
mycolor=new Color("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|rando m(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 ,在网页中使用还是必须
添加额外的参数
或者用最简单的一句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 文件中加入以下代码即可:
其中*.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.setV olume(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实用代码大全|flash动作代码|flash常用代码|flash教程外部调用swf
on (release) {
loadMovieNum("service.swf", 1);
}
外部调用数据
loadV ariablesNum("about.txt", 0);
/doc/8280167b7fd5360cba1adb29.ht ml eCodepage = true;//中文
音乐加入
mySound = new Sound();
mySound.attachSound("1");
mySound.start();
关闭指定音乐
mySound.stop("1");
外部调用音乐
mySound=new Sound();
mySound.loadSound("music.mp3",true);
mySound.start(0,100)
关闭音乐
mySound.stop();
链接场景:
on (release) {
gotoAndStop("猫的历史",1);
}
清空文本框
_root.text=""
On(Release)
Set V ariable:"input" = ""
Set V ariable:"output" = ""
End On
轻松实现Flash的全屏播放
许多人都看过这样的效果:把光盘放入光驱后,光盘自动运行,接着便是一段Flash制作的开场动画,动画是全屏播放的,且右键点击无效,动画播放结束后,出现“关闭”按
钮,单击该按钮后,全屏动画关闭。
其实上面提到的全屏播放以及取消右键菜单等效果都是靠Fscommand指令在发挥作用。
Fscommand指令主要是用来控制Flash影片播放器的,但也可以用来打开其它的应用程序。
Fscommand指令只有在Flash影片播放器执行时才有效(.swf和.exe),在Flash制作过程中,按“Ctrl+Enter”预览动画,以及把动画发布成网页文件时,此指令无法发挥它的功能。
Fscommand指令使用的语法是:Fscommand("command","arguments")
Command是指令的相关命令,arguments是命令的参数。
下面我们就来讲讲如何通过Fscommand指令来实现全屏播放、取消Flash播放时的右键
菜单以及关闭Flash动画。
1、全屏播放Flash
“Fullscreen”是全屏的意思,在默认的情况下,Flash动画不是以全屏播放(false
),如果需要让动画以全屏状态播放,就必须把Fullscreen命令设置为True,写为:Fscommand ("Fullscreen","True");
根据需要,我们可以把它写到帧、按钮、MC(Movie Clip)中。
2、取消右键菜单
Showmenu命令是用来设置是(True)否(false)显示Flash动画播放器的快捷菜单的全部指令,即右击鼠标时弹出的菜单,默认为True,如果要取消弹出的菜单,必须在第一帧这样设置:
Fscommand ("showmenu","false");
3、关闭动画
quit命令是用来关闭播放器的.swf和.exe文件,该命令没有参数,写为:
fscommand ("quit");
如果你想在flash动画结束时出现一个关闭动画的按钮,可以按下面的步骤做。
执行“Insert”下的“New Symbol”(或按Ctrl+F8),在弹出的窗口中选Button,然
后制作一个简单的按钮,回到场景中,选中最后一帧,从“Library”中把刚刚建立的按钮
拖到场景中,因为该按钮在动画的最后才显示。
给按钮写上如下代码,则实现按下按钮即关闭flash动画。
on (release)
{
fscommand ("quit");
}
一、几种Action命令
1.影片的播放与停止:
Play( );//播放命令stop( );//停止命令
2.改变流向命令
gotoAndPlay() //跳到指定的画面并连续播放。
gotoAndStop() //跳到指定的画面并停止播放。
gotA ndplay(“场景名称”,)//跳到指定场景帧并连续播放。
gotoAndStop(“场景名称:,frlme)//跳到指定场景帧并停止播放。
next( );//跳到下一帧播放;
PrevPrame( );//跳到上一帧播放。
3.控制影片剪辑的播放与停止:tellT arget命令
如:tellTarget(“C1”)
{gotoAndStop(2);}//跳影片剪辑实例C1的第2帧并停止。
二、几种功能元件的制作方法
1.计时器的制作
单击菜单Insert/new symbol,在弹出的对话框中输入插入的符号名称(如:计时器),确定后选择文字工具,属性为动态(Dynamic text),在第一帧中画两个文本框。
分别设置变量名为munite和timer,在两个文本框之间画一个形如冒号的圆点(这两个圆点可以做成一个符号,类型为电影片段,每秒闪动一次.然后拖入到两文本框之间。
在第二帧插入帧。
在第一帧输入动作脚本(Action)如下:
//设置时间的初值
if(!started) {
start_time=getTimer();
started=true;
timer=0;
i=o;
munite=0;
}
x=getTimer()-start_time;//计算时间的变化
x=int(x/1000);//时间的单位为1000分之一秒
y=x-60*i
if (y>59)
{i=i+1;munite=munite+1
timer=timer+1:
}
else
{timer=y}
该符号制作完毕后。
将其拖入主场景中即可。
2.智能判断速择题,并作正误提示
单击菜单Insert/new symbo1,在弹出的对话框中输入插入的符名称。
如:“对错提示”。
符号类型为“电影片段”。
在第一帧输入文本“在括号内输入答案,按enrer键确定“在
该帧上输入动作脚本:
_root.flah=false;_root.ans=" ";gotoAndStop(1);在第16帧插入空关键帧。
在该帧上
画一个形如“x”的图或输入文本“x”,在第30帧插入关键帧,帧AAction为_root.ans="
":gotoAndStop(31);在第31帧插人空白关键帧,在该帧上输人静态文本“请重作,按e nter键确定。
“在该帧输入脚本:“stop();”至此,该符号制作主或:例如:
第1题:1十1十( )
A.2 B.3 C.4 D.0
在上例括号位置插入动态文本框,不输入任何内容。
该文本框变量名为:ans。
在该帧适当位置插入电影“对错提示”,该电影片断名属性为“ql”,在该电影片断上输人脚本:
//键盘事件控制程序
onClipEvent(keyDown)
}
//取得按键的键值
keycode=Key.getCode();
//判断是否为Enter键
if(keycode==Key.ENTER) {
//判断输入的答案是否正确
//answer=Number(A)
if(_root,ans=="A" or _root.ans=="a"{
//显示“答对了”信息
tellTsrget(_root.q1) {
gotoAndPlay(2);
}
} else {
//显示“答错了”信息
tellTarget(_root.q1) {
gotoAndplay(16)
}
}
}
}
3.声音的加载和控制
插入一段音乐:在Pile/Import to Library中,找到要插入的音乐(如战马奔腾),打开符号库,找到“战马奔腾”符号,单击右键,在弹出的菜单中单击Linkage…命令,再在弹出的菜单中选中Export for ActionSc选项,在Indentify框内输入标识符:如music。
在需要播放的帧插入如下脚本:
soun=new Sound();//创建声音实例
sound.attachSound("music");//将音乐music链接到sound实例
sound.start(0,2);//播放音乐2遍
sound.setV olume(70):该音乐的音量为70%。
以上加载音乐通过帧加载,也可以通过按钮加载。
停止音乐的方法:制作一个按钮,在按钮上输人脚本:
on(release)
{
sound.stop();
}
4.如何用键盘控制帧的跳转
有的教师喜欢用键盘进行操作,如何使这类操作方使自如呢?用Flash MX制作的方法如下:制作一个符号(如“知识回顾”),符号类型为“电影片段”。
在这个符号中将需要回顾的
知识点逐帧展示,每帧动作脚本为:stop()回到主场景,在需要的帧插入该符号,该帧脚
本为:stop();插入后.单击该符号.输人脚本:
onClipEvent(Key Down) {//键盘响应,按下任一键时响应该命令next();
}
这样即实现了按任一键便可跳转到指定帧的效果。
此例仅仅是一种基本方法,读者朋友在应用时可以有更多的扩展。
5.鼠标指向显示填空题答案
显示一些问题的答案,可以将这一答案制成—个按钮,在这一按钮的Up帧可以为空白关键帧,其它帧为答案内容。
在问题的答案处插入该按钮,在该帧输入脚本:
on(release) {
gotoAndStop;//第i帧将答案固定显示在屏幕上
flash场景之间相互跳转的实现方法
在制作flash动画的时候,可能会有有很多的mc
有时会把它放到几个场景中,那么在场景中的跳转如何实现呢?
1.
方法一:(使用telltarg...
方法一:(使用telltarget命令)
按钮上的as为:
on (release) {
tellTarget ("/") {
gotoAndPlay ("场景1", 1);
}
}
2.
方法二(用gotoandpla...
方法二(用gotoandplay命令)
主场景2中的mc放到场景2的时间轴上
按钮的as:
onrelease{
gotoAndPlay("场景1",1)}
并且在最后一帧加stop()。