外部调用swf
on (release) {
loadMovieNum("service.swf", 1);
}
外部调用数据
loadVariablesNum("about.txt", 0);
System.useCodepage = 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 Variable:"input" = ""
Set Variable:"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() //跳到指定的画面并停止播放。
gotAndplay(“场景名称”,)//跳到指定场景帧并连续播放。
gotoAndStop(“场景名称:,frlme)//跳到指定场景帧并停止播放。
next( );//跳到下一帧播放;
PrevPrame( );//跳到上一帧播放。
3.控制影片剪辑的播放与停止:tellTarget命令
如: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帧插人空白关键帧,在该帧上输人静态文本“请重作,按enter键确定。“在该帧输入脚本:“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.setVolume(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:
on release {
gotoAndPlay("场景1",1)
}
并且在最后一帧加stop()
问题就可以解决了:
3.
方法三(利用路径_root.g...
方法三(利用路径_root.gotoandplay())
第二个场景2里面只有一个mc,在这个mc的最后一帧是stop和一个replay按钮
按钮的as:_root.gotoAndPlay(1)
【即告知按钮回到场景1的第一帧】
4.
方法四(给场景起不同的名字) ...
方法四(给场景起不同的名字)
如果你的as这样写:
第二个sence里面只有一个mc,在这个mc的最后一帧是stop和一个replay按钮
按钮的as:
on release {
gotoAndPlay("sence1",1)
}
结果按下后却是从这个mc的第一帧开始播放,而不是从sence1的第一帧
这是因为主场景的名字默认为senceN
MC里也可以有多个场景,而mc也是默认为senceN
所以当你在MC用上gotoAndPlay ("scene1", 1);时,指的是所在场景中MC里的第一帧,而不是主场景
解决的方法,就是给场景定义不同的名字
scene1我们改名为:主场景
scene2我们改名为:次场景1
正确的as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay (1);
}
}
如果想实现按钮点击后从次场景播放就可以在按钮上写上:
on (release) {
tellTarget (_root.次场景) {
gotoAndPlay (1);
}
}
5.
方法五(利用标签label) ...
方法五(利用标签label)
我们在控制动画的时候一般也不是从开始播放,可能是希望从某个场景的某一个关键帧开始播放,那么标签是最好的实现方法;
例如我们希望点击上面的按钮的时候让动画从主场景中的label1开始播放,那么按钮上的as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay ("label1");
}
例如有3个场景,我们希望点击上面的按钮的时候让动画从次场景1中的label4开始播放,
那么按钮上的as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay ("次场景 1", "label4");
}
}
}
}
如果想实现按钮点击后从次场景播放
就可以在按钮上写上:
on (release) {
tellTarget (_root.次场景) {
gotoAndPlay (1);
}
}
3,什么叫矢量图?
矢量图可以任意缩放而不影响Flash的画质,位图图像一般只作为静态元素或背景图,Flash并不擅长处理位图图像的动作,应避免位图图像元素的动画。
4,如何迅速地对齐不同中的物件?
用 Inspector “Ctrl+Alt+I” 直接输入坐标。
或是工具栏〉〉窗口〉〉面板〉〉排列“Ctrl+K” 调出排列面板来。图例
5,怎样调节一个Symbol/MC地透明度?
选中Symbol/MC,菜单栏找到Modify(修改) 〉〉 Instance (实例)〉〉Color effect (效果)〉〉 Alpha(透明度) 调整就可以了
6,做好地Flash放在html上面以后,它老是循环,怎么能够让它不进行循环?
最后一个祯地Action设置成Stop(停止)
7,怎样给我的FLASH做一个预加载地LOADING?
用Action语法地if is loaded来实现,新建一层,这层专门放Action,
第一帧,
ifLoaded ("场景", ) //假如场景中地祯数已经载入
goto and play() //跳至并播放某某祯(自己设定)
{}
第二帧,
goto and play("场景1", 1)//跳至并播放第一祯循环
再加上一个load地MC循环播放在这两帧的中间,就OK了。
8,怎样点击一个按钮打开一个页面html而不是一个祯.
制作一个按钮,上面地AS直接写:
on (release)
getURL ("***.html");
{}
这里地***.html就是你要打开地页面文件名,当然也可以是某某URL地址,比如说http://www.flash8.net
9,我在按钮地OVER祯放置了一个很大地MC,为什么我要没有点击到按钮鼠标就变成了手地状态?
按钮真正激活区是在HIT(按下)祯地位置,如果想控制按钮的位置为一定值,可以在HIT祯绘制一个透明地图形来判断.
10,如果屏蔽鼠标右键?FS命令都是什么意思?
fscommand ("fullscreen", "true/false");(全屏设置,TRUE开,FALSE关)
fscommand ("showmenu", "true/false");(右键菜单设置,TRUE显示,FALSE不显示)
fscommand ("allowscale", "true/false");(缩放设置,TRUE自由缩放,FALSE调整画面
不影响影片本身的尺寸)
fscommand ("trapallkeys", "true/false");(快捷键设置,TRUE快捷键开,FALSE快捷键
关)
fscommand ("exec");(EXE程序调用)
fscommand ("quit");(退出关闭窗口)
11,在FLASH中的字体总是很模糊,用变清晰地办法吗?
写好文本以后CTRL+T打开文本设置面板,在最后地文本框选项那里框选使用设计字体就行了.(注意最好使用宋体,尺寸为12或者8,这样比较工整)
12,我想做一个MTV,怎么导入声音呀?
很简单,CTRL+R导入你地声音文件就行了.
13,我制作地MTV声音和歌词总是不同步.
CTRL+F打开祯控制面板,右边找到声音选项卡,调整声音地同步效果为STREM(音频数据流)模式就行了.
16,怎样可以做出很漂亮地字体特效?
用第三方软件Swish和Swfx这些,闪吧地软件资源有下载.
19,如何加载一个SWF文件
添加一个空地MC。实体名为ok,
ACTION: loadMovie("dr/test.swf", "_root.ok");
控制这个MC的位置,大小等相对属性(Property)就会影响调入SWF的位置和大小。
setProperty ("mc", _xscale, "****");
setProperty ("mc", _yscale, "****");
setProperty ("mc", _x, "****");
setProperty ("mc", _y, "****");
setProperty ("mc", _Alpha, "****"); ............
20,如何导入一个背景透明度效果比较好地位图?
推荐使用PNG格式(FIREWORK),FLASH对PNG位图地融合透明效果支持相当好。
21.问:如何用action将页面设为首页和加入收藏夹?
答: 一,用getURL的方法:
设为首页:
on (release)
getURL(";void links[0].setHomePage('http://www.flashempire.com/);", "_se
lf", "POST");
{}
加入收藏夹:
on (release)
getURL(" external.AddFavorite('http://www.flash8.net,'闪
吧');", "_self", "POST");
{}
二,用fscommand的方法,有点复杂
1,先在flash的按钮上添加代码:
首页:
on (release)
fscommand("setHomePage", "http://www.flash8.net);
{}
收藏夹:
on (release)
fscommand("addFavorite", "http://www.flash8.net|闪吧);
{}
然后在发布设置中选择flash with fscommand,发布成html
2,修改html:
找到
// Handle all the the FSCommand messages in a Flash movie
sethomepage_DoFSCommand(command, args)
{}
这一段,修改成:
// Handle all the the FSCommand messages in a Flash movie
sethomepage_DoFSCommand(command, args)
var sethomepageObj = InternetExplorer ? sethomepage : sethomepage;
if (command == "setHomePage") {
links[0].style.behavīor = "url(#default#homepage)";
links[0].setHomePage(args);
{} else if (command == "addFavorite")
args = args.split("|");
external.AddFavorite(args[0], args[1]);
{}
}
最后,如果html里一个链接都没有,还需?lt; LANGUAGE=java>这句的前面添加一句
22.问:怎么让动画放完后自动关闭?
答:在最后一桢的ACTION里选FSCOMMOND一项,然后在右边选中QUIT,就可以了
24。问:如何在Flash中打开一个定制的浏览器新窗口?
答:这个问题,很常见,也讨论过无数次,以前的一些有用的帖子找不到了,现在重新整理如下:
常用也是很简单的方法是用类似
Get URL (";")
这样的一句,但有很多问题,比如打开了新窗口后,原窗口的内容也被替代了。
1、在Flash中需要执行打开新窗口动作的地方插入以下语句:
FS Command ("open_window", "filename.htm;newwin;toolbar=no,location=no,status=
no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200")
其中Arguments:
filename.htm 要打开的文件名
newwin 新窗口的名字
toolbar=no,location=no,status=no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200 新窗口的有关属性,包括尺寸 注意以上三部分要用分号";"分隔
2、在File>Publish setting...中设定
HTML中的Tempalte : Flash with FSCommand
发布
3、编辑发布生成的html文件,找到以下一段:
code:< LANGUAGE=java>
trace bitmap"命令优化图象!
100。问:请问如何在每次刷新页面时随即显示几个不同的 SWF 中的某一个动画?
答: LoadmovieNum("movie"+random(5)+".swf")
假设有6个swf,分别命名为
movie0.swf,movie1.swf,……movie5.swf
像上边那样,每刷新一次,出现的界面就可能不一样。
101。问:如何屏蔽按钮BUTTON的手型,我只要箭头!
答:可以使用mouse.hide();,然后再用startDrag命令让一个箭头形的MC被拖动就可以了。
102. 问:如何让一个MC调用另一个MC里设置的一个变量?
在mc里输入此语句:(a b 均为变量名,mcname为mc的实体名)
a = _root.mcname.b;
此语句是使本mc的变量a调用_root.mcname这个mc里的变量b
103.问:在Flash中如何打开Word文档?
Flash不支持调用Word文件,但浏览器可以直接打开.doc文档,那么就用getURL来解决即可,路径用绝对地址http://www..../word.doc。
104. 问:在Flash中如何调用mpeg文件?
Flash中不支持调用mpeg文件,首先要安装一个三方软件,名字为Swiffcanvas1.0;接着打开fla文件,如果mpeg文件的目录为aa,mpeg文件名字为bb,那么就可以就添加下面的语句:
FS Command ("exec", "SwiffEXEC(LOCAL:aaa\111.mpeg) ");
然后把fla文件输出为exe文件,并用Swiffcanvas打开这个exe文件,然后在Swiffcanvas里设置完成自己的要求。最后再输出为.exe文件,就可以了。
105。问:在Action的编辑窗口中怎么输入中文?
可以更换Flash的字体,也就是删除Windows\Fonts\Modern.fon,这样,编辑窗口的字体就好看多了。
105.问: Flash如何与数据库连接?
答:只能通过后台文件,如CGI脚本,Active Server Pages (ASP),或 Personal Home Page (PHP)等。传递值到flash中,实现数据库的操作。
106. 问:在用FsCommand中可以调用java吗?
答:FsCommand可以调用JS函数MovieName_DofsCommand装入Flash动画。MovieName是Flash动画的名字由Embed标签的Name属性或是Object标签的ID属性指定,如果FlashPlayer的名字为MYMOVIE,应该调用JS函数名字为MYMOVIE_DOFSCOMMAND。
107。问:如何学习Flash(阿文)
bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=14205&h=1&bpg=1&age=-1
108。问:如何实现FLASH背景颜色的随机变换(erik168)
bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=16519&h=1&bpg=1&age=-1
109:问:Flash 5.0 Actions 一览!(djsgh)
答:http://bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=7607&h=1&bpg=1&age=-1
110。问:如何制作动作连贯的小黑人(拾荒)
答:http://bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=35539&h=1&bpg=1&age=-1
111。问:初学者如何人打好ACTION基础(小晶)
答:http://bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=15164&h=1&bpg=1&age=-1
112。问:如何实现画中画效果(木桫椤)
答:http://bbs.flash8.net:8000/cgi-bin/topic_show.cgi?id=7552&h=1&bpg=1&age=-1
113。问:FLASH如何与后台连接?[源码]
答:使用LoadVars()对象的sendAndLoad()方法来发送和接收数据
114。问:如何实现声音的暂停/播放效果?
答:在执行stop()命令时可以用sound对象的position属性取得当前声音文件的播放时间(
毫秒),然后用start(time,loop)在当前位置播放即可。
115。问:如何定义二维数组?
答:下面定义一个20*20的二维数组,值全部为0
sarray = [];
for (var i = 0; i<=19; i++)
sarray[ i] = [];
for (var j = 0; j<=19; j++) {
sarray[ i][j] = 0;
{}
}
116。问:如何打开指定属性的窗口?[源码][/color]
答:先JS在HTML页面中定义函数,然后在FLASH中用getURL()调用
117。问:如何通过MC中的按钮跳转场景?
答:在要跳转的桢上加标签,通过标签跳转:gotoAndStop("yourlable")
118。问:如何随机设置MC颜色?
答:MC实例名为"mc"
mycolor=new Color("mc")
mycolor.setRGB(random(0xffffff))
119。问:如何实现双击效果?
答:把下面的代码放到按钮上:
on (press)
time = getTimer()-down_time;
if (time<300) {
trace("ok");
{}
down_time = getTimer();
}
(turbine)
120。问:如何使MC始终跟随鼠标旋转
答:先计算MC横纵坐标与鼠标横纵坐标的差值,然后用Math.atan2()来计算旋转角度。
m_x = _root._xmouse-mc._x;
m_y = _root._ymouse-mc._y;
mc._rotation = PI=180/Math.PI*Math.atan2(m_y, m_x);
121。问:如何做鼠标跟随效果?
答:基础代码如下,a为步长
mc._x+=(_root._xmouse-mc._x)/a
mc._y+=(_root._ymouse-mc._y)/a
(turbine)
122。问:如何在AS中创建类的继承?
答:创建一个MC的继承类
myClass=()
……
{}
myClass.prototype = new MovieClip();
(turbine)
122.问:能否详细讲解loadmovie
答:loadmovie的问题,然后就是加载之后属性的设置。。
loadMovieNum(url,level,method);
url 就是你要加载的SWF文件的相对或绝对URL. 如"snow.swf"或"http://go8.163.com/6s
now9/myflash/snow.swf",强烈建议把要加载的swf都放在同一目录下
level指定被加载的swf放入到哪个层级(level)里,范围为0---n吧