9、FLASH脚本-播放器控制与网页连接以及动画发布输出、loadVariables命令、影片剪辑的深度、文本框 二十五、播放器控制与网页连接以及动画发布输出
fscommand命令
fscommand命令是一个非常强大的浏览器与网络动作命令。它可以让FLASH影片能够与FLASH播放器或者承载FLASH播放器的程序进行通信。还可以将消息传递给其他应用程序(比如VB、C++等),它的语法格式如下:
fscommand(command:String,parameters:String):Void
fscommand命令包含两个参数,即command和parameters,各自的意义如下:
"command:String"是传递给主机应用程序用于任何用途的一个字符串,或者传递给FLASH播放器的一个命令.
"parameters:String"是传递给主机应用程序用于任何用途的一个字符串,或者传递给FLASH播放器的一个值。
如果要把消息发送给独立的播放器就需要使用到系统内置的六个命令和参数。这六个命令和参数在使用脚本助手添加fscommand命令时,可以进行选择
系统内置的六个命令和参数的具体说明如下:
command parameters 说明
fullscreen true或者false 打开FLASH动画时是否进行全屏播放,true表示全屏播放
allowscale true或者false 是否允许用户在缩放动画播放窗口的同时改变FLASH文件中的对象大小
showmenu true或者false 选择false就隐藏了"设置"和"关于Flash Player"以外的所有右键菜单
trapallkeys true或者false 设置为true就可以锁定所有的键盘输入,使所有的快捷键都无效
exec 应用程序的路径 在可播放FLASH文件的非FLASH播放器中调入并执行应用程序(.exe .com或者.bat)
quit 无 关闭可播放FLASH文件的播放器窗口
关于以上命令的用法大家看下面的语句:
fscommand("fullscreen","true");//打开FLASH文件自动进行全屏播放
fscommand("allowscale","true");//允许对FLASH文件中的对象进行缩放
fscommand("showmenu","false");//隐藏主要的FLASH右键菜单
fscommand("trapallkeys","true");//键盘的输入对FLASH播放器无效
fscommand("exec", "C:\\WINDOWS\\system32\\calc.exe");//调用应用程序"计算器"
fscommand("quit");//关闭FLASH播放器窗口
FLASH动画的发布
1、发布设置
2、输出视频文件
3、输出图像文件
二十六、loadVariables命令
一. loadMovie命令
1.loadMovie命令可以将外部的SWF动画或者图片文件加载到FLASH影片中。
loadMovie命令语法格式:
loadMovie(url:String,target:Object/String, [method:String]):Void
此命令包含三个参数:url target method
url:String 要加载的swf文件或者图片文件所在的路径
target:Object/String 对影片剪辑的引用或者目标影片剪辑路径的字符串。
method:String 指定用于发送变量的HTTP方法,这个参数必须时字符串GET或者POST。如果没有要发送的变量,就省略这个参数。GET方法用于发送少量的变量,POST方法用于发送长字符串的变量。
2.使用loadMovie加载影片
我们可以使用loadMovie命令加载外部的SWF文件
loadMovie(“1.swf”,_root.mc)
3.使用loadMovie加载图片
loadMovie(“1.jpg”,_root.mc)
二. loadVariables命令
使用loadVariables命令可以从外部文件中读取数据,并设置影片剪辑中变量的值,比如设置影片剪辑中动态文本框的变量。外部文件可以是ASP JSP PHP等脚本生成的文件。
loadVariables(url:String,target:Object,[method:String]):Void
此命令包含三个参数:url target method
url:String 要加载变量所处位置的绝对路径或者相对的url
target:Object 指向接收所加载变量的影片剪辑的目标路径
method:String 指定用于发送变量的HTTP方法,这个参数必须时字符串GET或者POST。如果没有要发送的变量,就省略这个参数。GET方法用于发送少量的变量,POST方法用于发送长字符串的变量。
loadVariables(“aa.txt”,_root.mc);
三. loadVariablesNum命令
使用loadVariablesNum命令可以从外部文件中读取数据,并且可以设置播放器的级别中的变量的值。
loadVariablesNum(url:String,level:Number, [method:String]):Void
其中level是一个整数,用来指定FLASH播放器接收这些变量的级别
var tu = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"];
var i = 0;
function show() {
_root.createEmptyMovieClip("pic", 0);
_root.pic.loadMovie(tu );
_root.pic._alpha = 0;
_root.pic._xscale=10;
_root.pic._yscale=10;
i++;
i%=4;
_root.on EnterFrame = function() {
_root.pic._alpha += 7;
_root.pic._xscale += 5;
_root.pic._yscale += 5;
if (_root.pic._alpha>=100) {
delete _root.on EnterFrame;
}
};
}
on MouseDown = function () {
show();
};
二十七、影片剪辑的深度
1. getDepth方法
getDepth方法可以返回影片剪辑实例的深度值
mc. getDepth();
mc是影片剪辑的实例名称,getDepth返回的是一个整数,表示影片剪辑所在的深度
2.getInstanceAtDepth方法
我们可以使用getInstanceAtDepth方法来返回指定深度上的影片剪辑实例。通过此来查看指定的深度是否已经被占用。
mc. getInstanceAtDepth(depth);
mc是所要检查的范围,depth是整数,用来检查mc中指定深度级别。如果这个深度上没有影片剪辑实例。那么就返回undefined.
3.getNextHighestDepth方法
getNextHighestDepth方法可以返回下一个可用的最大深度值。
mc. getNextHighestDepth();
返回的是一个整数。代表可用最大深度值。
4.影片剪辑深度的交换
如果要将一个影片剪辑移到另一个影片剪辑的前面或者后面,可用使用swapDepths方法来交换两个影片剪辑的深度。
mc.swapDepths(depth/target);
mc指的是要与其他实例交换深度的实例名称,如果实例名称是depth,那么就表示mc和深度是depth上的实例交换深度。如果参数是target,表示mc与实例target交换深度
num = 7;//加载图片的数量
a = 275;//图片做椭圆形运动的X轴的中心
b = 200;//图片做椭圆形运动的Y轴的中心
rx =190;//图片做椭圆形运动的X轴的半径
ry = 50;//图片做椭圆形运动的Y轴的半径
n = 0;//用来计算运动速度的角度值
angle=0;//用来计算运动速度的弧度值
speed=0;//计算图片响应鼠标运动的速度增量
for (i=1; i<=num; i++) {//从库中将标识符为mc的元件附加到舞台
_root.attachMovie("mc", "mc"+i, i);
}
if (_xmouse>50 && _xmouse<500 && _ymouse>50 && _ymouse<350) {
speed = (275-_xmouse)*.08;
n += speed;
} else {
n = (n<360) ? n+1 : 1;
}
for (i=1; i<=num; i++) {
angle = (i*360/num+n)*Math.PI/180;
_root["mc"+i]._x = a-rx*Math.cos(angle);
_root["mc"+i]._y = b-ry*Math.sin(angle);
_root["mc"+i]._xscale = 10-100*Math.sin(angle);
_root["mc"+i]._yscale = 100-10*Math.sin(angle);
if (_root["mc"+i]._y>200) {
_root["mc"+i].swapDepths(100+i);
} else {
_root["mc"+i].swapDepths(10-i);
}
_root["mc"+i].gotoAndStop(i);
}
gotoAndPlay(2);
二十八、文本框
1. 文本框的类型
2. 动态文本框
3. 输入文本框
影片剪辑的第一帧的脚本:
textarea=textshow.substring(0,index)+"_";
index++;
if(index>textshow.length)
stop();
gotoAndPlay(Math.ceil(Math.random()*5)+5);
gotoAndPlay(1);
影片剪辑screen上的脚本:
on ClipEvent(load)
{
textshow=new String;
textshow="请在下方区域输入文字";
index=1;
}
播放按钮上的:
on(press)
{
screen.textshow=textinput;
screen.index=1;
screen.gotoAndPlay(1);
}
fscommand命令
fscommand命令是一个非常强大的浏览器与网络动作命令。它可以让FLASH影片能够与FLASH播放器或者承载FLASH播放器的程序进行通信。还可以将消息传递给其他应用程序(比如VB、C++等),它的语法格式如下:
fscommand(command:String,parameters:String):Void
fscommand命令包含两个参数,即command和parameters,各自的意义如下:
"command:String"是传递给主机应用程序用于任何用途的一个字符串,或者传递给FLASH播放器的一个命令.
"parameters:String"是传递给主机应用程序用于任何用途的一个字符串,或者传递给FLASH播放器的一个值。
如果要把消息发送给独立的播放器就需要使用到系统内置的六个命令和参数。这六个命令和参数在使用脚本助手添加fscommand命令时,可以进行选择
系统内置的六个命令和参数的具体说明如下:
command parameters 说明
fullscreen true或者false 打开FLASH动画时是否进行全屏播放,true表示全屏播放
allowscale true或者false 是否允许用户在缩放动画播放窗口的同时改变FLASH文件中的对象大小
showmenu true或者false 选择false就隐藏了"设置"和"关于Flash Player"以外的所有右键菜单
trapallkeys true或者false 设置为true就可以锁定所有的键盘输入,使所有的快捷键都无效
exec 应用程序的路径 在可播放FLASH文件的非FLASH播放器中调入并执行应用程序(.exe .com或者.bat)
quit 无 关闭可播放FLASH文件的播放器窗口
关于以上命令的用法大家看下面的语句:
fscommand("fullscreen","true");//打开FLASH文件自动进行全屏播放
fscommand("allowscale","true");//允许对FLASH文件中的对象进行缩放
fscommand("showmenu","false");//隐藏主要的FLASH右键菜单
fscommand("trapallkeys","true");//键盘的输入对FLASH播放器无效
fscommand("exec", "C:\\WINDOWS\\system32\\calc.exe");//调用应用程序"计算器"
fscommand("quit");//关闭FLASH播放器窗口
FLASH动画的发布
1、发布设置
2、输出视频文件
3、输出图像文件
二十六、loadVariables命令
一. loadMovie命令
1.loadMovie命令可以将外部的SWF动画或者图片文件加载到FLASH影片中。
loadMovie命令语法格式:
loadMovie(url:String,target:Object/String, [method:String]):Void
此命令包含三个参数:url target method
url:String 要加载的swf文件或者图片文件所在的路径
target:Object/String 对影片剪辑的引用或者目标影片剪辑路径的字符串。
method:String 指定用于发送变量的HTTP方法,这个参数必须时字符串GET或者POST。如果没有要发送的变量,就省略这个参数。GET方法用于发送少量的变量,POST方法用于发送长字符串的变量。
2.使用loadMovie加载影片
我们可以使用loadMovie命令加载外部的SWF文件
loadMovie(“1.swf”,_root.mc)
3.使用loadMovie加载图片
loadMovie(“1.jpg”,_root.mc)
二. loadVariables命令
使用loadVariables命令可以从外部文件中读取数据,并设置影片剪辑中变量的值,比如设置影片剪辑中动态文本框的变量。外部文件可以是ASP JSP PHP等脚本生成的文件。
loadVariables(url:String,target:Object,[method:String]):Void
此命令包含三个参数:url target method
url:String 要加载变量所处位置的绝对路径或者相对的url
target:Object 指向接收所加载变量的影片剪辑的目标路径
method:String 指定用于发送变量的HTTP方法,这个参数必须时字符串GET或者POST。如果没有要发送的变量,就省略这个参数。GET方法用于发送少量的变量,POST方法用于发送长字符串的变量。
loadVariables(“aa.txt”,_root.mc);
三. loadVariablesNum命令
使用loadVariablesNum命令可以从外部文件中读取数据,并且可以设置播放器的级别中的变量的值。
loadVariablesNum(url:String,level:Number, [method:String]):Void
其中level是一个整数,用来指定FLASH播放器接收这些变量的级别
var tu = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"];
var i = 0;
function show() {
_root.createEmptyMovieClip("pic", 0);
_root.pic.loadMovie(tu );
_root.pic._alpha = 0;
_root.pic._xscale=10;
_root.pic._yscale=10;
i++;
i%=4;
_root.on
_root.pic._alpha += 7;
_root.pic._xscale += 5;
_root.pic._yscale += 5;
if (_root.pic._alpha>=100) {
delete _root.on
}
};
}
on
show();
};
二十七、影片剪辑的深度
1. getDepth方法
getDepth方法可以返回影片剪辑实例的深度值
mc. getDepth();
mc是影片剪辑的实例名称,getDepth返回的是一个整数,表示影片剪辑所在的深度
2.getInstanceAtDepth方法
我们可以使用getInstanceAtDepth方法来返回指定深度上的影片剪辑实例。通过此来查看指定的深度是否已经被占用。
mc. getInstanceAtDepth(depth);
mc是所要检查的范围,depth是整数,用来检查mc中指定深度级别。如果这个深度上没有影片剪辑实例。那么就返回undefined.
3.getNextHighestDepth方法
getNextHighestDepth方法可以返回下一个可用的最大深度值。
mc. getNextHighestDepth();
返回的是一个整数。代表可用最大深度值。
4.影片剪辑深度的交换
如果要将一个影片剪辑移到另一个影片剪辑的前面或者后面,可用使用swapDepths方法来交换两个影片剪辑的深度。
mc.swapDepths(depth/target);
mc指的是要与其他实例交换深度的实例名称,如果实例名称是depth,那么就表示mc和深度是depth上的实例交换深度。如果参数是target,表示mc与实例target交换深度
num = 7;//加载图片的数量
a = 275;//图片做椭圆形运动的X轴的中心
b = 200;//图片做椭圆形运动的Y轴的中心
rx =190;//图片做椭圆形运动的X轴的半径
ry = 50;//图片做椭圆形运动的Y轴的半径
n = 0;//用来计算运动速度的角度值
angle=0;//用来计算运动速度的弧度值
speed=0;//计算图片响应鼠标运动的速度增量
for (i=1; i<=num; i++) {//从库中将标识符为mc的元件附加到舞台
_root.attachMovie("mc", "mc"+i, i);
}
if (_xmouse>50 && _xmouse<500 && _ymouse>50 && _ymouse<350) {
speed = (275-_xmouse)*.08;
n += speed;
} else {
n = (n<360) ? n+1 : 1;
}
for (i=1; i<=num; i++) {
angle = (i*360/num+n)*Math.PI/180;
_root["mc"+i]._x = a-rx*Math.cos(angle);
_root["mc"+i]._y = b-ry*Math.sin(angle);
_root["mc"+i]._xscale = 10-100*Math.sin(angle);
_root["mc"+i]._yscale = 100-10*Math.sin(angle);
if (_root["mc"+i]._y>200) {
_root["mc"+i].swapDepths(100+i);
} else {
_root["mc"+i].swapDepths(10-i);
}
_root["mc"+i].gotoAndStop(i);
}
gotoAndPlay(2);
二十八、文本框
1. 文本框的类型
2. 动态文本框
3. 输入文本框
影片剪辑的第一帧的脚本:
textarea=textshow.substring(0,index)+"_";
index++;
if(index>textshow.length)
stop();
gotoAndPlay(Math.ceil(Math.random()*5)+5);
gotoAndPlay(1);
影片剪辑screen上的脚本:
on
{
textshow=new String;
textshow="请在下方区域输入文字";
index=1;
}
播放按钮上的:
on(press)
{
screen.textshow=textinput;
screen.index=1;
screen.gotoAndPlay(1);
}